Tool soll beim Hochfahren ebenfalls starten

Andrew44

(╯°□°)╯︵ ┻━┻
Ahoi,

ich würde gerne Opencanary beim Hochfahren starten lassen, allerdings komm ich da nicht so recht voran.

Habe anfangs getestet, ob ichs einfach mittels crontab lösen kann, lief allerdings nicht.
"""
[root] crontab -e
@reboot /bin/sh ........./opencanaryd --start
"""

Jetzt wollte ichs in rc.conf.local reinschreiben, blick allerdings nicht ganz durch, wie es funktioniert.
Hab nen Lösungsansatz mit google gefunden - glaube allerdings der ist etwas veraltet (BUCH: OpenBSD 4.0 Crash-Course)

Habe mir die MAN-Pages durchgelesen, allerdings starten meine Versuche nicht.
Müsste ich vorher einen eignen "Dienst" draus machen, bevors mit rc.d klappt ?
Wenn ja, wie mach ich das ?


Mit freundlichen Grüßen aus nem 29 °C Büro
Andrew
 
/etc/rc.local
https://man.openbsd.org/rc.8

/etc/rc.local.conf ist für Daemons

EDIT: Sofern dus nicht seperat deklarierst, starten über die rc.local die Dienste im Vordergrund, was einen Systemstart denke ich verhindern könnte, bitte mitbedenken
 
Hi Mogbo,

die Idee bez. opencanaryd_flags="" hatte ich auch, allerdings gibts da leider keinen Eintrag.

EDIT:
Ah - habe den ersten Kommentar nicht gesehen.

Also könnte ichs nochmal versuchen mit:
"""
/bin/sh ...../opencanaryd --start
"""
in der rc.local


PS: Warum steht bei dir "banned" unter dem Benutzericon ?
 
die Idee hatte ich auch, allerdings gibts da leider keinen Eintrag.
Die rc.local ist ein File, welches lediglich am "Ende" der rc via ksh gestartet wird, würde mich stark wundern, wenn mans damit nicht zum Laufen bekäme


Syntax /etc/rc.local
Code:
/bin/echo "Hello World"

Würde im Vordergrund beim Systemstart ein echo mit "Hello World" vor dem Login ausgeben

Oder missverstehe ich dein Problem?
 
PS: Warum steht bei dir "banned" unter dem Benutzericon ?
Fand ich witzig, ist ein Freitextfeld :)

/bin/sh ...../opencanaryd --start
Ich glaube damit würdest du eine Shell spawnen, die permanent als root läuft, sofern opencanaryd an ist. Ist opencanaryd nicht executable, bzw. muss das Teil im Hintergrund als root laufen (oder dropt das Tool selbstständig seine Privilegien)?
 
Ich würde gerne Opencanary automatisiert starten (aktiv vor dem Login), im Hintergrund laufen lassen, als root.

Als einzig mir bekannte Startmöglichkeit nutze ich .../opencanaryd --start
 
/etc/rc.local wird einfach beim Start gesourced. Einträge darin können folgerndermaßen aussehen
Code:
atactl sd0 apmdisable                                                                                    
atactl sd1 apmdisable
Für das opencanaryd könnte man also was in folgender Richtung machen (angenommen, das binary opencanaryd liegt unter /usr/local):
Code:
echo -n "Starting opencanaryd"                                                                      
if [ -x /usr/local/bin/opencanaryd ];then                                                  
       /usr/local/bin/opencanaryd --start                                                          
fi
Für einen Start aus rc.conf.local benötigst du ein rc.d-Startskript, was dann eingebunden wird etc. Ist jetzt auch kein Hexenwerk und sollte nach Lektüre einiger bereits vorhandener Startskripte in /etc/rc.d/ sowie manpages ebenfalls kein größeres Problem darstellen.
 
Danke für den Input,

mein etc/rc.local :

Bash:
#!/bin/bash

if [ -x /usr/local/opencanary/venv/bin/opencanaryd ]; then
echo -n ' opencanary started'; /usr/local/opencanary/venv/bin/opencanaryd --start
fi
funktioniert scheinbar nicht.

PS: opencanaryd ist ein Bash-Skript.
 
Was macht das Shebang ganz am Anfang? Das gehört da nicht hin.

/bin/bash gibt's unter OpenBSD standardmäßig nicht.

"Funktioniert scheinbar nicht" ist keine anständige Fehlermeldung. Was wird ausgegeben? Hast du bash installiert? Startet es mit "/bin/sh /usr/local/opencanary/venv/bin/opencanaryd --start" oder mit installierter bash "/usr/local/bin/bash /usr/local/opencanary/venv/bin/opencanaryd --start"? Hast du die Shebang im Skript selber angepasst (was gibt "head /usr/local/opencanary/venv/bin/opencanaryd" aus)?
 
Hast du bash installiert?
- Habe Bash installiert

- das Shebang in der rc.local stammt von mir, ja
- (außerhalb rc.local) /bin/bash ..../opencanaryd --start funktioniert
- /bin/sh funktioniert nicht in rc.local
- (außerhalb von rc.local) /bin/sh ..../opencanaryd --start
/usr/local/opencanary/venv/bin/opencanaryd[7]: syntax error: `(' unexpected

(was gibt "head /usr/local/opencanary/venv/bin/opencanaryd" aus)?
Bash:
#!/bin/bash
DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
PIDFILE="${DIR}/opencanaryd.pid"

cmd=$1

function usage() {
    echo -e "\n  OpenCanary v1.0\n"
    echo -e "\topencanaryd [ --start | --dev | --stop | --copyconfig | --usermodule | --help ]\n\n"
    echo -e "\t\t--start\tStarts the opencanaryd process"


Hatte es auch mal mit "/bin/bash/ /usr/local/opencanary/venv/bin/opencanaryd" im rc.local versucht.
Opencanary wurde beim reboot nicht gestartet.

PS: In welcher Logdatei würde das " Opencanary started" aus der rc.local landen ?
 
Wenn ich whereis bash eingeben, wird der Pfad:
/bin/bash
ausgegeben.

/bin/bash /usr/local/opencanary/venv/bin/opencanaryd --start funktioniert ebenfalls (außer in der rc.local)
 
Danke für die Hinweise,
wie starte ich dann Opencanary mittels rc.local ?

Die schlichte Angabe des Pfades + startparameter reicht scheinbar nicht aus.
 
Hatte es auch mal mit "/bin/bash/ /usr/local/opencanary/venv/bin/opencanaryd" im rc.local versucht.

/bin/bash/ ist definitiv falsch, ein Slash zu viel.
wie starte ich dann Opencanary mittels rc.local ?

Erst musst du es sauber in der Shell starten können, ohne explizite Angabe des Interpreters.

Wie ist die Ausgabe von
Code:
ls -l /usr/local/opencanary/venv/bin/opencanaryd

Rob
 
/bin/bash/ = Schreibfehler meinerseits

Erst musst du es sauber in der Shell starten können, ohne explizite Angabe des Interpreters.
Das funktioniert soweit
Code:
/usr/local/opencanary/venv/bin/opencanaryd --start
in der Konsole eingegeben - startet korrekt

wenn ich jedoch das rc.local einfach so ausführen will kommt folgendes:

Code:
/etc/rc.local
ksh: /etc/rc.local: cannot execute - Permission denied
EDIT:
chmod +x hats behoben . Er startet opencanary beim manuellen aufruf der rc.local

Ausgabe ls -l :
-rwxr-xr-x 1 root wheel 2459 Mar 12 18:36 /usr/local/opencanary/venv/bin/opencanaryd
 
-rwxr-xr-x 1 root wheel 2459 Mar 12 18:36 /usr/local/opencanary/venv/bin/opencanaryd
Gut, das bedeutet, dass du es nur ausführen musst.
In der rc.local also einfach die Zeile:
Code:
/usr/local/opencanary/venv/bin/opencanaryd --start

Wenn das nicht geht, musst du herausfinden, warum der Daemon nicht startet.
Dazu die obige Zeile einfach in der Shell ausführen.

Wie gesagt: immer ohne Angabe eines Interpreters.

Rob
 
Meine rc.local

Bash:
exec 2> /tmp/rc.local.log
exec 1>&2
set -x

/usr/local/opencanary/venv/bin/opencanaryd --start

# cat /tmp/rc.local.log + /usr/local/opencanary/venv/bin/opencanaryd --start [e] No config file found, please create one with "opencanaryd --copyconfig"

rc.local funktioniert, danke dafür - wunder mich nur gerade, warum er den conf file nich findet.

EDIT:
Funktioniert alles - in der opencanaryd Datei warn falscher Pfad gesetzt - beim manuellen starten hatter auf den nich zugreifen müssen

Danke für die Hilfe
:)
 
Zurück
Oben