Rocrail auf Raspberry Pi Jessie als Dienst

Post Reply
roco007
Posts: 92
Joined: 10.11.2012, 23:28

Rocrail auf Raspberry Pi Jessie als Dienst

Post by roco007 » 18.03.2016, 23:06

Hallo!
Ich habe seit ein paar Tagen Raspbian Jessie auf meinem Raspberry Pi 2 B+ installiert der meine H0-Anlage über einen BiDiB Master steuert.
Das Compilieren mit "make -j 4 fromtar" mit wxgtk3 hat bestens funktioniert, ebenso das erstellen und installieren des .deb Paketes. Rocail ist ganz normal unter /opt installiert und läuft auch problemlos wenn man es händisch mit "sudo /etc/init.d/rocraild start" startet.
Was nur mit einem meiner Meinung nach nicht sehr schönem work-around funktioniert, ist das starten von rocraild als Systemdienst beim Systemstart: Zur Zeit habe ich in der Datei /etc/rc.local die folgende Zeile eingefügt:

Code: Select all

/etc/init.d/rocraild start
Damit startet rocraild brav als Dienst.
Die meiner Meinung nach "offizielle" Lösung mit

Code: Select all

sudo systemctl enable rocraild
funktioniert leider nicht. Der Befehl:

Code: Select all

sudo systemctl status rocraild
liefert nach einem reooot die folgende Ausgabe:

● rocraild.service - LSB: Starts the Rocrail Daemon
Loaded: loaded (/etc/init.d/rocraild)
Active: active (exited) since Fri 2016-03-18 22:45:02 CET; 1min 43s ago
Process: 485 ExecStart=/etc/init.d/rocraild start (code=exited, status=0/SUCCESS)

Mar 18 22:45:02 rocrail03 rocraild[485]: Rocrail is up and running with PID 200
Mar 18 22:45:02 rocrail03 systemd[1]: Started LSB: Starts the Rocrail Daemon.
Es läuft kein rocrail wie man mit "ps -A | grep roc" bestätigen kann.
Laut Zeitstempel von /opt/rocrail/nohup.out startet Rcorail auch offensichtlich beim Systemstart wird dann aber aus irgendwelchen Gründen beendet. Mit
"sudo /etc/init.d/rocraild start" lässt sich Rocrail jedoch dann problemlos starten.
Ich betreibe meinen Raspberry headless, ohne Monitor und Tastatur, ohne graphische Oberfläche im runlevel 3, ohne autologin für den user pi, interagiert wird mit ihm über einen Nicht-Standard-user mit sudo-Rechten per ssh.

Hat hier jemand eine saubere Lösung wie man rocrail auf einem Raspberry Pi B unter Raspbian Jessie als Dienst beim Systemstart zu laufen bringt?

Wenn nicht hoffe ich, dass jemandem mit dem gleichen Problem mit meinen Workarround geholfen ist.

Viele Grüße

Uli

Pirat-Kapitan
Moderator
Posts: 4805
Joined: 06.02.2010, 15:46
Location: Rösrath bei Köln / Germany

Re: Rocrail auf Raspberry Pi Jessie als Dienst

Post by Pirat-Kapitan » 19.03.2016, 16:02

Hallo Uli,
woher hast Du die Deiner Meinung nach "offizielle" Lösung mit
"sudo systemctl enable rocraild" ?
Ich habe das nirgendwo gefunden, während die Lösung
/etc/init.d/rocraild start
in allen Dokus verwendet wird.
Wenn ich das recht sehe, wird beim Installieren eines vorgefertigten Paketes für den RasPi der Bootstart des Dienstes während der Installation aktiviert, da ist so etwas wie
sudo update-rc.d rocraild defaults
drin.

Schöne Grüße
johannes

roco007
Posts: 92
Joined: 10.11.2012, 23:28

Re: Rocrail auf Raspberry Pi Jessie als Dienst

Post by roco007 » 19.03.2016, 18:18

Hallo Johannes!
Die Lösung mit systemctl findet man wenn man nach "services debian jessie" im Internet sucht. Soweit ich das verstanden habe, stellt die Datei /etc/init.d/rocraild nur die Möglichkeit zur Verfügung, rocrail automatisch als Dienst beim Systemstart zu starten, diese Datei an sich startet rocrail jedoch noch nicht automatisch. Um rocrail zu starten muss ich noch was tun, entweder mich einloggen und mit "sudo /etc/init.d/rocraild" rocrail starten, den von mir verwendeten workarround mit /etc/rc.local, diese Datei wird als letztes im Bootprocess aufgerufen, oder eben rocrail tatsächlich als Dienst starten. Dazu muss je nach runlevel in /etc/rc3.d oder /etc/rc5.d ein symbolischer Link auf mit dem namens Sxxrocraild auf /etc/init.d/rocraild liegen. Mit "sudo systemctl enable rocraild", "sudo update-rc.d rocraild defaults" sollte eigentlich das gleiche tun funktioniert aber bei mir nicht, wird z.B. in /etc/rc3.d der symbolisch link S01rocraild angelegt der dann eben im Bootprocess rocrail automatisch startet. Das passiert auch aber irgendwie wird rocrail eben wieder beendet. Dies meiner Meinung nach offizielle Lösung, hätte auch den Vorteil, dass über den link "K01rocraild" in z.B. /etc/rc1.d/ rocrail auch beim Systemshutdown wieder sauber beendet wird, über diesen Link sollte automatisch "/etc/init.d/rocraild stop" aufgerufen werden.
Soweit ich das verstanden habe, ist das mit /etc/init.d die alte Lösung von SysVinit als System das den Bootprocess managed die in Jessie zwar noch vorhanden ist aber von Systemd als neues System abgelöst wird. https://wiki.ubuntuusers.de/Dienste/

Soweit mein Wissen über Dienste unter Linux,
Viele Grüße
Uli

ps.: Hier noch was "sudo update-rc.d rocraild defaults" und verschieden Varianten sagen:
uli@rocrail03:~ $ sudo update-rc.d rocraild default
usage: update-rc.d [-n] [-f] <basename> remove
update-rc.d [-n] <basename> disable|enable [S|2|3|4|5]
-n: not really
-f: force
The disable|enable API is not stable and might change in the future.

uli@rocrail03:~ $ sudo update-rc.d rocraild enable default
update-rc.d: warning: enable action will have no effect on runlevel default
update-rc.d: error: no runlevel symlinks to modify, aborting!

uli@rocrail03:~ $ sudo update-rc.d rocraild enable 5
update-rc.d: error: no runlevel symlinks to modify, aborting!

Pirat-Kapitan
Moderator
Posts: 4805
Joined: 06.02.2010, 15:46
Location: Rösrath bei Köln / Germany

Re: Rocrail auf Raspberry Pi Jessie als Dienst

Post by Pirat-Kapitan » 19.03.2016, 18:33

Hi Uli.
da ich noch wheezy benutzen muss, bis jessie auch einen AP zur Verfügung stellt, könntest Du doch mal Deine Erkenntnisse zu jessie in einem Tutorial zusammenfassen.
Im Wiki haben wir ja schon Anleitungen / Tutorials zum RasPi, aber jessie fehlt noch.
Schöne Grüße
Johannes

roco007
Posts: 92
Joined: 10.11.2012, 23:28

Re: Rocrail auf Raspberry Pi Jessie als Dienst

Post by roco007 » 19.03.2016, 19:05

Hallo!
Kann ich gerne machen aber zwei Fragen:
1) Wo? Eine url wo es dazu passt und wo ich es dazu schreiben darf wäre super
2) Wie? Woher bekomme ich ein log-in fürs Wiki, mit den Daten fürs Forum und für git hab ich es versucht.
Viele Grüße
Uli

ps.: Was ist/heißt AP?

Pirat-Kapitan
Moderator
Posts: 4805
Joined: 06.02.2010, 15:46
Location: Rösrath bei Köln / Germany

Re: Rocrail auf Raspberry Pi Jessie als Dienst

Post by Pirat-Kapitan » 19.03.2016, 19:32

Hi Uli,
Zugang zum Wiki bekommst Du von Rob.
AP = Access Point, ein Gerät, dass einen WLAN-Zugang für andere Geräte bereitstellt. Oft auch als "Router" bezeichnet.

Schöne Grüße
Johannes

roco007
Posts: 92
Joined: 10.11.2012, 23:28

[Gelöst]: Rocrail auf Raspberry Pi Jessie als Dienst

Post by roco007 » 25.03.2016, 17:12

Hallo!
Seit heute funktioniert mein rocrail auf einem Raspberry Pi 2 B mit Raspbian Jessie als Dienst den ich über

Code: Select all

sudo systemctl rocraild enable
aktiviert habe. Damit ist meine "Bastellösung" über rc.local hinfällig.
Ich habe den Rasbian so um konfiguriert, dass es beim booten wartet, dass das Netzwerk verfügbar ist, dazu per

Code: Select all

sudo raspi-config
in einer Konsole das Konfigurationstool aufrufen, dort unter Punkt 4: "Wait for Network at Boot:" "Slow Wait for network connection before completing boot" auswählen.
Grüße
Uli

Post Reply

Return to “Basisfunktionalität (DE)”