FHEM Forum

FHEM - Hardware => Server - Linux => Thema gestartet von: helbgd am 27 Juli 2014, 14:02:16

Titel: shutdown restart und systemd
Beitrag von: helbgd am 27 Juli 2014, 14:02:16
Hallo, leider startet fhem nach einem shutdown restart nicht mehr neu.

es wird ja folgendes ausgeführt um fhem neu zu starten:

      system("(sleep 2; exec $^X $0 $attr{global}{configfile})&");

Da ich fhem auf Arch linux und damit mit dem systemd starte frage ich mich nun ob vlt der Systemd es nicht zulässt das der Process sich selbst so wie hier neu startet.

Wenn ich fhem.pl per hand starte ohne systemctl etc ... nur mittels
usr/bin/perl /opt/fhem/fhem.pl /opt/fhem/fhem.cfg
kann ich fhem ohne probleme neu starten.


Hier mein Systemd Service Script:

fhem.service
[Unit]
Description=FHEM Perl Server
After=syslog.target network.target owserver.service

[Service]
Type=forking
User=fhem
Group=fhem
WorkingDirectory=/opt/fhem

ExecStart=/usr/bin/perl /opt/fhem/fhem.pl /opt/fhem/fhem.cfg

[Install]
WantedBy=multi-user.target

Gibt es leute die auch Systemd einsetzen und kann man dort mittel shutdown restart fhem neu starten?
Und wieso könnte das bei mir nicht klappen?

Titel: Antw:shutdown restart und systemd
Beitrag von: helbgd am 29 Juli 2014, 22:35:04
Habe das Problem nun selbst gefixt:


[Unit]
Description=FHEM Perl Server
After=syslog.target network.target owserver.service

[Service]
Type=oneshot <<<<<<<<<
User=fhem
Group=fhem
WorkingDirectory=/opt/fhem
RemainAfterExit=yes <<<<<<<<<
ExecStart=/usr/bin/perl /opt/fhem/fhem.pl /opt/fhem/fhem.cfg


[Install]
WantedBy=multi-user.target



nun kann ich in fhem shutdown restart benuten und fhem startet wieder neu.  :-)
Titel: Antw:shutdown restart und systemd
Beitrag von: rudolfkoenig am 29 Juli 2014, 23:11:38
Danke fuer die Lösung
Titel: Antw:shutdown restart und systemd
Beitrag von: CONSULitAS am 28 November 2014, 12:07:10
 :) ebenfalls danke, habe ich lange nach gesucht!
Titel: Antw:shutdown restart und systemd
Beitrag von: papa am 28 November 2014, 22:42:23
Danke auch von mir ... da hatte ich schon lange aufgegeben.
Titel: Antw:shutdown restart und systemd
Beitrag von: smmmo am 30 Dezember 2014, 19:56:06
Mit folgenden 2 Zeilen wird dann auch das Stoppen bzw. der Restart (z.B. nach dem Updaten) unterstützt:


ExecStop=/usr/bin/perl /opt/fhem/fhem.pl 7072 shutdown
ExecReload=/usr/bin/perl /opt/fhem/fhem.pl 7072 shutdown;/usr/bin/perl /opt/fhem/fhem.pl /opt/fhem/fhem.cfg;


Hässlich ist, dass der Port 7072 hardcoded hinterlegt ist. Keine Ahnung wie hier eine elegante systemd-Möglichkeit aussehen sollte..
Titel: Antw:shutdown restart und systemd
Beitrag von: rudolfkoenig am 30 Dezember 2014, 20:57:00
Man setzt attr global pidfilename, und sendet dem Prozess ein SIGTERM.
Ueblich unter unix.
Titel: Antw:shutdown restart und systemd
Beitrag von: betateilchen am 31 Dezember 2014, 18:32:27
Zitat von: rudolfkoenig am 30 Dezember 2014, 20:57:00
Man setzt attr global pidfilename

und achtet darauf, dass fhem das File auch an der angegebenen Stelle beschreiben darf...