[gelöst] shutdown restart -- fährt FHEM runter aber startet nicht mehr

Begonnen von kadettilac89, 27 Dezember 2017, 12:23:15

Vorheriges Thema - Nächstes Thema

kadettilac89

Hallo Gemeinde,

das Thema gab es vor Kurzem schon mal, leider finde ich den Thread nicht.

Wie der Betreff sagt ... nach shutdown restart fährt FHEM runter, startet aber nicht mehr.

Kann sich jemand an den Thread vor ein paar Wochen erinnern, vielleicht gab es da schon eine Lösung.

Danke im Voraus.

Mein Setup, RP3, neuestes Raspbian, Fhem aktuell (Stand heute). Startscript systemd aus contrib, aktuellestes. Einzige Änderung darin ist "restart: on-failure".


# : fhem.service 15685 2017-12-25 10:34:23Z betateilchen $

[Unit]
Description=FHEM Home Automation
Wants=network.target
After=network.target

[Service]
Type=forking
User=fhem
Group=dialout
WorkingDirectory=/opt/fhem
ExecStart=/usr/bin/perl fhem.pl fhem.cfg
#ExecStart=/usr/bin/perl fhem.pl configDB
Restart=on-failure
RestartSec=5

[Install]
WantedBy=multi-user.target

Beta-User

Es gab dazu mehrere Threads, Ursache war teilweise nicht identisch, aber die grundsätzliche Frage: was sagt das log?!?
Verbunden damit: Läßt sich fhem dann von der Konsole aus starten, oder was passiert da?
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

kadettilac89

#2
Zitat von: Beta-User am 27 Dezember 2017, 12:32:55
Es gab dazu mehrere Threads, Ursache war teilweise nicht identisch, aber die grundsätzliche Frage: was sagt das log?!?
Verbunden damit: Läßt sich fhem dann von der Konsole aus starten, oder was passiert da?

Hi,

- Log ist leer
- Von der Konsole aus kein Problem
- service an sich funktioniert auch, nach einem Raspi-Restart läuft Fhem, wenn ich den Prozess hart mit kill -9 töte startet FHEM auch wieder
- habe eine nakte Fhem-Installation mit Stand 24.12. (Stand nach apt-get install) getestet, selbes Verhalten.
- In Syslog oder so steht auch nichts verdächtiges

Im default systemd script steht restart always. Es kann natürlich sein, dass es das Problem bei mehreren gäbe aber durch "always" immer vom Linux selbst gestartet wird.

das "always" habe ich durch "on-failure" erstetzt da ich den Dienst für Backups stoppen will.

Einzig nach einem manuellen "shutdown restart" kommt FHEM nicht mehr hoch.


Edit:
Test-Raspberry ... jungfräuliches Raspbian, FHEM mit apt-get installiert

1) init.d Dienst gelöscht
2) system.d Dienst aktiviert, Source contrib mit Änderung s. o.
3) system.d Dienst gestartet

--> Selbes Verhalten. Shutdown restart bringt FHEM nicht mehr hoch

Test 2:

1) system.d Dienst gelöscht
2) alten init.d Dienst aktiviert
3) init.d Dienst gestartet

--> Shutdown restart funktioniert.

Ich habe mich mit system.d Diensten noch nicht befasst. Ich vermute, dass hier etwas fehlt oder nicht so möglich ist wie in init.d. Im init.d Script gibt es ein "Restart"-Section. Vermutlich wird beim "shutdown restart" auf Linux-Ebene "service fhem restart" aufgerufen.

Beta-User

Auch, wenn ich hier vermutlich nicht weiterhelfen kann, kommt mir diese Aussage komisch vor:
Zitat- Log ist leer
Irgendwas müßte da eigentlich drin stehen, oder hast du den verbose-Level geändert? Dann würde ich da mal ansetzen, da war in den anderen Fällen wenigstens zu erkennen, ob ein Versuch stattgefunden hat, fhem wieder zu starten. Oder war das so zu verstehen, dass das letzte was drinsteht, der Server-Stop war?

Ansonsten kann es vermutlich nicht schaden, betateilchen zu informieren, dass du bei Installation des Debian-Pakets nach Umstellung auf systemd iVm. dem "on-failure" vielleicht ein Problem hast, das damit zusammenhängen könnte (es gab dazu einen Info-Thread von ihm).
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

Frank_Huber

Im anderen thread lag am Ende die Vermutung dass shutdown restart zu schnell wieder starten will.
Das System also noch mit shutdown beschäftigt ist.
Es sollte ein Versuch gestartet werden mit kurzer Pause zwischen shutdown und restart.

Mit dem Handy online, daher kurz gefasst...


kadettilac89

Zitat von: Beta-User am 27 Dezember 2017, 13:10:21
Auch, wenn ich hier vermutlich nicht weiterhelfen kann, kommt mir diese Aussage komisch vor:Irgendwas müßte da eigentlich drin stehen, oder hast du den verbose-Level geändert? Dann würde ich da mal ansetzen, da war in den anderen Fällen wenigstens zu erkennen, ob ein Versuch stattgefunden hat, fhem wieder zu starten. Oder war das so zu verstehen, dass das letzte was drinsteht, der Server-Stop war?

Ansonsten kann es vermutlich nicht schaden, betateilchen zu informieren, dass du bei Installation des Debian-Pakets nach Umstellung auf systemd iVm. dem "on-failure" vielleicht ein Problem hast, das damit zusammenhängen könnte (es gab dazu einen Info-Thread von ihm).

Sorry, habe mich unglücklich ausgedrückt. Log leer = keine ungewöhlichen Einträge.

Werde betateilchen informieren. Es gibt im Anfängerbereich einen Thread in dem es auch um das systemd script geht. Da ist Udo mit am diskutieren.

Zitat von: Frank_Huber am 27 Dezember 2017, 13:13:06
Im anderen thread lag am Ende die Vermutung dass shutdown restart zu schnell wieder starten will.

Wenn ich shutdown eingebe und absetze habe ich aber keine Weboberfläche um dann ein restart zu tippen, oder wie meinst du das? Änderung in fhem.pl selbst nötig?

Beta-User

In dem anderen Thread ging es um eine Änderung am init.d-script.

Allerdings stellt sich die Frage, wo das bei einem systemd-basierten Raspbian einzustellen wäre. Das init.d-script wird ja gar nicht mehr installiert, wenn ich das richtig verstanden habe, sondern "nur" die systemd-config (mit auto-restart). Dann gab es in dem anderen Fall die Fehlermeldung mit port 7072...

Es liegt eher die Vermutung nahe, dass der Aufruf von fhem selbst ins Leere geht, eben weil das script fehlt. Der eigentlich installierte neue Mechanismus greift vielleicht in der modifizierten Form aber auch nicht, systemd das direkt erledigen zu lassen. Aber es geht vermutlich schneller, wenn sich jemand das ansieht, bei dem Quellcodeanalyse schneller geht und das Systemverständnis größer ist bzw. die Hinweise dazu gibt, wie das sinnvollerweise zu machen ist.

Trotzdem würde ich Udo auch noch mit dem Logauszug (es reicht ja ab dem server-shutdown) versorgen, auch wenn anzunehmen ist, dass da schlicht nichts steht. Aber vielleicht können sehende Augen auch was erkennen, was für "normale" Menschen unsichtbar ist.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

kadettilac89

Ich denke der Fehler lag bei mir. Lt. Linux-Foren start das "restart always" auch wenn man den Dienst sauber stopt. Habe das getestet, verhält sich mit always wie gewollt.

Nicht alles was in Foren geschrieben wird ist richtig, oder in Fhem ist der Fall abgefangen. Scheint zu funktionieren. Sorry für die Verwirrung. Wenn man sich irgend wo sicher ist, hinterfragt man nichts. Das war der Fehler.

SChönen Tag noch!

betateilchen

Zitat von: kadettilac89 am 27 Dezember 2017, 12:39:58
Vermutlich wird beim "shutdown restart" auf Linux-Ebene "service fhem restart" aufgerufen.

Nein, wird es nicht.

Wenn FHEM über systemd gestartet wurde, reicht schon ein "shutdown" für einen restart, sofern das service-file nicht modifiziert wurde und dort die von mir eingetragenen restart-Optionen aktiviert sind. (Übrigens würde auch ein "kill <fhemProzess>" auf Betriebssystemebene dazu führen, dass FHEM nach 5 Sekunden wieder neu gestartet wird)

Ein tatsächliches shutdown von FHEM ist dann aus FHEM heraus nicht mehr möglich. Der Dienst kann auf Betriebssystemebene mit "service fhem stop" beendet werden, dann startet er auch nicht mehr automatisch neu.

Inzwischen habe ich die restart-Optionen im service-file in SVN deaktiviert. Wenn jemand einen automatischen Neustart wünscht, muss das aktiv geändert werden, indem man die Kommentarzeichen der beiden Zeilen entfernt.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

betateilchen

ah... jetzt hab ich das Problem verstanden:

Wenn kein auto-restart in fhem.service gesetzt ist, funktioniert "shutdown restart" generell nicht mehr.

Sag das doch gleich  8)

Muss ich mir anschauen, ggf. mit Rudi diskutieren.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Beta-User

...das "shutdown restart" unter bestimmten Rahmenbedingungen generell nicht funktionieren könnte, scheint auch das Problem gewesen zu sein, das Cooltux in einem der beiden anderen Fälle beobachtet hatte (ich müßte den link suchen, aber wie ich ihn kenne, meldet er sich eh dazu). Auch dort scheint es schlicht gar keine sinnvollen log-Ausgaben gegeben zu haben.

Btw.: Nach dem Quellcode von fhem.pl wäre es jedenfalls in dem Fall des virtualisierten Servers wohl besser gewesen, ein "restartDelay" zu setzen statt (so hatte ich das jedenfalls verstanden) das startscript anzupassen.

Das es scheinbar nur auf neuen, schnellen Maschinen (bzw. virtualisierten) mit systemd zu Problemen zu kommen scheint: könnte es tatsächlich ein Geschwindigkeitsthema sein?
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

kadettilac89

#11
Zitat von: betateilchen am 27 Dezember 2017, 14:50:22
ah... jetzt hab ich das Problem verstanden:

Wenn kein auto-restart in fhem.service gesetzt ist, funktioniert "shutdown restart" generell nicht mehr.

Sag das doch gleich  8)

Muss ich mir anschauen, ggf. mit Rudi diskutieren.

Ich habe für mich eine Lösung mit der ich zufrieden bin. Für mich muss nichts mehr gebastelt werden. Also very low priority. Ich stoppe nun FHEM auf OS Ebene. Shutdown in Fhem hab ich verbannt.

Ich hatte ursprünglich "restart=always" ersetzt durch "restart=on-failure". Jetzt ist wieder "always" drin.

restart=always
- In FHEM: Fhem shutdown -- funktioniert nicht weil Fhem wieder startet
- In FHEM:  Fhem shutdown restart -- funktioniert
- auf OS-Ebene: service fhem start / restart / stop -- funktioniert

restart=on-failure
- In FHEM: Fhem shutdown -- funktioniert
- In FHEM: Fhem shutdown restart -- funktioniert nicht mehr (das initial diskutierte Verhalten)
- auf OS-Ebene: service fhem start / restart / stop -- funktioniert


Soll ich das "gelöst" aus dem Titel nehmen da ich scheinbar eine Diskussion angeleiert hab?

Auch wenn ich selber keine Probleme mehr habe, Danke an alle die hier helfen!

Frank_Huber

Mal anderstrum gefragt, was muss ich ändern damit "shutdown restart " funktioniert?

FHEM ist auf Raspbian Jessie installiert nach Anleitung von debial.fhem.de
ZitatThe easy way: Use apt-get to install FHEM and all dependencies
Import repository gpg key:
wget -qO - http://debian.fhem.de/archive.key | apt-key add -
Add repository to /etc/apt/sources.list: deb http://debian.fhem.de/nightly/ /
Update your package administration: apt-get update
Install fhem: apt-get install fhem
You will find a special version number like Inst fhem (5.8.15700 debian.fhem.de [all])
with 5.8 representing the major version with 15700 representing the latest SVN commit included.

kadettilac89

#13
Zitat von: Frank_Huber am 27 Dezember 2017, 16:09:10
Mal anderstrum gefragt, was muss ich ändern damit "shutdown restart " funktioniert?

FHEM ist auf Raspbian Jessie installiert nach Anleitung von debial.fhem.de
kannst du auf shutdown in fhem selbst verzichten? Wenn ja, nimm das systemd-script aus meinem ersten post und ersetze "Restart=on-failure" durch "Restart=always".

Damit geht shutdown restart und Restart wenn Fhem crashed.

Edit:
Damit das geänderte Script auch greift:
- systemctl daemon-reload
- systemctl restart fhem

Frank_Huber

Danke, das schau ich mir an.
Hauptsächlich bräuchte ich shutdown restart nach den updates.
Da mach ich immer einen kompletten OS restart...
Shutdown alleine brauch ich nicht.

Mit dem Handy online, daher kurz gefasst...