(gelöst) Unmotivierter Server shutdown nach dem FHEM-Start

Begonnen von Damian, 28 Januar 2020, 22:32:32

Vorheriges Thema - Nächstes Thema

Damian

Zitat2020.01.28 22:12:51.398 5: CUL_HM Tuer protEvent:CMDs_done
2020.01.28 22:12:51.398 5: CUL_HM Tuer sent ACK:2
2020.01.28 22:12:51.511 4: CUL_HM Tuer dupe: dont process
2020.01.28 22:12:51.877 3: CUL_HM set Wandleuchten_W statusRequest
2020.01.28 22:13:37.577 0: Server shutdown
2020.01.28 22:13:38.620 1: Including fhem.cfg
2020.01.28 22:13:38.844 3: WEBHOME: port 8086 opened
2020.01.28 22:13:38.871 3: Opening CUL device /dev/serial/by-id/usb-busware.de_CUL868-if00
2020.01.28 22:13:38.901 3: Setting CUL serial parameters to 9600,8,N,1

Nach dem Start von FHEM rebootet das System zyklisch.

Zum Hintergrund: Ich habe mein FHEM-System von Windows auf einen neu installierten Pi4 Fhemrelease 6.0 umgezogen.
Nach Anpassung der jeweiligen Device-Namen wird das System sauber hochgefahren, nach ca. 40-50 Sekunden rebootet FHEM ohne weitere Fehlermeldung.

Wie kann ich dem Übeltäter auf die Spur kommen?
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Otto123

#1
ZitatNach Anpassung der jeweiligen Device-Namen wird das System sauber hochgefahren,
Hallo Damian,

wie  muss ich mir das vorstellen? Du hast nach der Installation FHEM beendet, editierst die fhem.cfg und startest fhem wieder über systemctl start fhem?

Der loggt doch den shutdown? Da bekommt er doch einen entsprechenden Befehl und ist nicht einfach weg?
Systemd sollte dann den restart ausführen. ::)

Ich würde jetzt in erster Linie die "HW Device s" in Verdacht haben und diese Schritt für Schritt aus der Konfig rausnehmen.

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Damian

#2
Zitat von: Otto123 am 28 Januar 2020, 23:06:55
Hallo Damian,

wie  muss ich mir das vorstellen? Du hast nach der Installation FHEM beendet, editierst die fhem.cfg und startest fhem wieder über systemctl start fhem?

Gruß Otto

Ja, ich habe eine umfangreiche Konfiguration, die ich nicht Device für Device einzeln nachziehen möchte, zumal es mein Produktivsystem ist. Daher war meine Hoffnung gewesen, die cfg-Datei zu übernehmen. Dabei musste ich die USB-Devices manuell in der cfg anpassen, da mein System bis jetzt unter Windows läuft. Nach dem Umstecken der USB-Geräte und dem Start über 'sudo systemctl start fhem' funktioniert auch alles, soweit ich das bisher beurteilen konnte, bis auf die Reboots von fhem (nicht vom Raspi). Ich gehe davon aus, dass der Service (warum auch immer) von außen beendet und neu startet wird. Innerhalb von FHEM habe ich keine spezifischen Systemaufrufe. Ich gehe davon aus, dass kein Modul und auch nicht FHEM selbst auf die Idee kommt einen shutdown zu initiieren, schon gar nicht ohne eine Fehlermeldung im Log.





Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Otto123

ZitatDabei musste ich die USB-Devices manuell in der cfg anpassen,
Hast Du als Quelle für deine manuelle Anpassung die Geräte vorher mal einzeln in einer Testinstallation eingebunden?

Du kannst auch einfach versuchen, die USB Geräte einer nach dem anderen ab zu ziehen. Aber kann sein das dann Dein FHEM stehen bleibt.
Hast du initialUsbCheck deaktiviert?

Mir klingt das auch nach einem shutdown von außen. Irgendeiner sendet ein kill an den FHEM Prozess. Müsste man das nicht irgendwo sehen? syslog?
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

CoolTux

Und kurz vor dem Reboot steht nichts im Logfile? Wenn Du ein systemctl stop fhem und danach systemctl start fhem machst, brauch er dann lange bis zu nach der Befehlsabgabe wieder einen prompt hast um weitere Befehle eingeben zu können?
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Wernieman

Wie sieht Deine system.d Config aus?

Irgendwie erinnert mich das an einen Fehler, welchen wir vor kurzem schon mal hatten ....
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

CoolTux

Zitat von: Wernieman am 29 Januar 2020, 08:09:09
Wie sieht Deine system.d Config aus?

Irgendwie erinnert mich das an einen Fehler, welchen wir vor kurzem schon mal hatten ....

Eventuell schlägt hier der Systemd Watchdog zu. Aber das ist nur eine Vermutung. Daher würde mich interessieren ob der systemctl Befehl korrekt und relativ zeitnah den prompt wieder frei gibt.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Otto123

Zitat von: CoolTux am 29 Januar 2020, 08:21:02
Eventuell schlägt hier der Systemd Watchdog zu.
Wie genau schlägt der zu? Ich dachte wenn der Prozess weg ist?
Im Log braucht er 46 sec zwischen dem letzten CUL_HM Eintrag und dem Eintrag von FHEM Server Shutdown. Das bedeutet doch für mich: FHEM lebt, er bekommt einen Shutdown Befehl (woher auch immer) und protokolliert den ordentlich.
Was prüft der systemd watchdog? Der kann doch nur den eigenen Prozess prüfen?
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Damian

Ich bin jetzt nicht zuhause, daher kann ich erst heute Abend im System nachschauen. Was ich sagen kann ist, dass der Reboot nicht lange dauert. Im Browser kommt kurz die Meldung, dass die WEB-Instanz nicht erreichbar ist und kurz danach (5-10 Sekunden) geht´s weiter. Solange dauert offenbar der Bootvorgang.

Es scheint auch nicht mit den HW-Devices direkt etwas zu tun zu haben. Ich meine sie schon mal alle aus der cfg zum Testen ausgetragen zu haben (werde ich aber noch mal testen). Die automatisch Einbindung der Geräte habe ich deaktiviert.

Die HW-Devices sind: CUL868, CUL433, HMLAN und SML über USB.

Eine "nackte" Installation von fhem rebootet nicht, es hat also etwas mit meiner Konfiguration zu tun.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

CoolTux

Zitat von: Otto123 am 29 Januar 2020, 08:52:10
Wie genau schlägt der zu? Ich dachte wenn der Prozess weg ist?
Im Log braucht er 46 sec zwischen dem letzten CUL_HM Eintrag und dem Eintrag von FHEM Server Shutdown. Das bedeutet doch für mich: FHEM lebt, er bekommt einen Shutdown Befehl (woher auch immer) und protokolliert den ordentlich.
Was prüft der systemd watchdog? Der kann doch nur den eigenen Prozess prüfen?

Ich hatte mal das Problem das auf Grund einer Testconfig kein FHEM Logfile in global vergeben war, somit wurde das Loging auf die Konsole ausgegeben und der systemd hat dadurch nicht mehr mitbekommen das FHEM korrekt gestartet wurde. Und hat dann alle 2 Minuten den FHEM Prozess neu gestartet.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

yersinia

Ich lese mal mit, ich habe das Problem - allerdings sporadisch -  ebenso. Es hat bisher aber keine negativen Auswirkungen; außer die ein oder andere Schrecksekunde wenn FHEM länger zum starten (=Webfrontend) benötigt.
Selten passiert es, dass FHEM nach einem shutdown restart nach erfolgreichem Start wieder runterfährt und startet und dann normal läuft. Das Phänomen beobachte ich seit ca 1 Jahr, auf Raspi 3 und Raspi 4. Wie gesagt, sporadisch und selten. System-log und FHEM-log geben keine Auskunft über mögliche Ursachen.
Weiterhin hatte ich letztens den Eindruck, dass FHEM nach einem shutdown nicht nur runter- sondern auch (ungewollt) wieder hochfährt. oO
(dass der FHEM service nach einem shutdown weiterhin läuft ist wahrscheinlich gewollt)
viele Grüße, yersinia
----
FHEM 6.3 (SVN) on RPi 4B with RasPi OS Bullseye (perl 5.32.1) | FTUI
nanoCUL->2x868(1x ser2net)@tsculfw, 1x433@Sduino | MQTT2 | Tasmota | ESPEasy
VCCU->14xSEC-SCo, 7xCC-RT-DN, 5xLC-Bl1PBU-FM, 3xTC-IT-WM-W-EU, 1xPB-2-WM55, 1xLC-Sw1PBU-FM, 1xES-PMSw1-Pl

Wernieman

Auch da würde mich das System.d-File interessieren ..
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Byte09

Zitat von: yersinia am 29 Januar 2020, 10:05:12....
Weiterhin hatte ich letztens den Eindruck, dass FHEM nach einem shutdown nicht nur runter- sondern auch (ungewollt) wieder hochfährt. oO
(dass der FHEM service nach einem shutdown weiterhin läuft ist wahrscheinlich gewollt)

dieses hatte ich heute morgen auch - ist mir allerdings heute das erste mal aufgefallen. Ich glaube aber das ist eine andere Baustelle - falls es eine ist/wird .

gruss Byte09

Damian

Ich habe mal meine vier HW-Devices herausgenommen - Reboot besteht weiterhin.

Offenbar scheitert der Startvorgang.
Der Aufruf:

sudo systemctl start fhem

liefert eine Fehlermeldung:

ZitatJob for fhem.service failed because a timeout was exceeded.
See "systemctl status fhem.service" and "journalctl -xe" for details.

journalctl -xe

liefert:

Zitat
Zitat-- A start job for unit fhem.service has finished with a failure.
--
-- The job identifier is 5176 and the job result is failed.
Jan 29 16:21:55 raspberrypi systemd[1]: fhem.service: Service RestartSec=100ms expired, scheduling restart.
Jan 29 16:21:55 raspberrypi systemd[1]: fhem.service: Scheduled restart job, restart counter is at 2.
-- Subject: Automatic restarting of a unit has been scheduled
-- Defined-By: systemd
-- Support: https://www.debian.org/support
--
-- Automatic restarting of the unit fhem.service has been scheduled, as the result for
-- the configured Restart= setting for the unit.
Jan 29 16:21:55 raspberrypi systemd[1]: Stopped FHEM Home Automation.
-- Subject: A stop job for unit fhem.service has finished
-- Defined-By: systemd
-- Support: https://www.debian.org/support
--
-- A stop job for unit fhem.service has finished.
--
-- The job identifier is 5234 and the job result is done.
Jan 29 16:21:55 raspberrypi systemd[1]: Starting FHEM Home Automation...
-- Subject: A start job for unit fhem.service has begun execution
-- Defined-By: systemd
-- Support: https://www.debian.org/support
--
-- A start job for unit fhem.service has begun execution.
--
-- The job identifier is 5234.
Jan 29 16:23:25 raspberrypi systemd[1]: fhem.service: Start operation timed out. Terminating.
Jan 29 16:23:25 raspberrypi systemd[1]: fhem.service: Failed with result 'timeout'.
-- Subject: Unit failed
-- Defined-By: systemd
-- Support: https://www.debian.org/support
--
-- The unit fhem.service has entered the 'failed' state with result 'timeout'.
Jan 29 16:23:25 raspberrypi systemd[1]: Failed to start FHEM Home Automation.
-- Subject: A start job for unit fhem.service has failed
-- Defined-By: systemd
-- Support: https://www.debian.org/support
--
-- A start job for unit fhem.service has finished with a failure.
--
-- The job identifier is 5234 and the job result is failed.
Jan 29 16:23:25 raspberrypi systemd[1]: fhem.service: Service RestartSec=100ms expired, scheduling restart.
Jan 29 16:23:25 raspberrypi systemd[1]: fhem.service: Scheduled restart job, restart counter is at 3.
-- Subject: Automatic restarting of a unit has been scheduled
-- Defined-By: systemd
-- Support: https://www.debian.org/support
--
-- Automatic restarting of the unit fhem.service has been scheduled, as the result for
-- the configured Restart= setting for the unit.
Jan 29 16:23:25 raspberrypi systemd[1]: Stopped FHEM Home Automation.
-- Subject: A stop job for unit fhem.service has finished
-- Defined-By: systemd
-- Support: https://www.debian.org/support
--
-- A stop job for unit fhem.service has finished.
--
-- The job identifier is 5292 and the job result is done.
Jan 29 16:23:25 raspberrypi systemd[1]: Starting FHEM Home Automation...
-- Subject: A start job for unit fhem.service has begun execution
-- Defined-By: systemd
-- Support: https://www.debian.org/support
--
-- A start job for unit fhem.service has begun execution.
--
-- The job identifier is 5292.

D. h., offensichtlich läuft irgendetwas beim Start auf timeout, der Service wird beendet und neu durchgestartet.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Wernieman

Ich wiederhole mich ungern:
Wie Sieht Deine system.d für fhem aus?
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Damian

Da es ein frisch installiertes System ist, nichts was einen überraschen sollte:

Zitatpi@raspberrypi:/etc/systemd/system $ cat fhem.service
# $Id: fhem.service 19235 2019-04-21 13:26:17Z betateilchen $

[Unit]
Description=FHEM Home Automation
Wants=network.target
After=network.target
#Requires=postgresql.service
#After=postgresql.service
#Requires=mysql.service
#After=mysql.service

[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=always

[Install]
WantedBy=multi-user.target
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Otto123

Ich meine wir hatten letztens so was ähnliches. Da fehlte glaub ich bloß ein Modul im System. Dummerweise gab es da auch keinen Hinweis in einem Log. :o
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

CoolTux

Für einen Test und kurzfristige Lösung

Ersetze forking durch simple
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

yersinia

Zitat von: Wernieman am 29 Januar 2020, 10:54:38
Auch da würde mich das System.d-File interessieren ..
here you go
# $Id: fhem.service 19235 2019-04-21 13:26:17Z betateilchen $

[Unit]
Description=FHEM Home Automation
Wants=network.target
After=network.target
#Requires=postgresql.service
#After=postgresql.service
#Requires=mysql.service
#After=mysql.service

[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=always

[Install]
WantedBy=multi-user.target

Ich habe FHEM Ende Dezember auf RasPi 4 mit Raspbian Buster (via) installiert und über restore wie in Ottos Blog beschrieben
sudo tar -xvzf /home/pi/FHEM-201xxxxx_xxxxxx.tar.gz -C /opt/fhem/
migriert. Bewusst bzw manuell habe ich fhem.service nicht angepackt.

uname -a
Linux fhempi4 4.19.93-v7l+ #1290 SMP Fri Jan 10 16:45:11 GMT 2020 armv7l GNU/Linux
viele Grüße, yersinia
----
FHEM 6.3 (SVN) on RPi 4B with RasPi OS Bullseye (perl 5.32.1) | FTUI
nanoCUL->2x868(1x ser2net)@tsculfw, 1x433@Sduino | MQTT2 | Tasmota | ESPEasy
VCCU->14xSEC-SCo, 7xCC-RT-DN, 5xLC-Bl1PBU-FM, 3xTC-IT-WM-W-EU, 1xPB-2-WM55, 1xLC-Sw1PBU-FM, 1xES-PMSw1-Pl

Morgennebel

Einziger Spender an FHEM e.V. mit Dauerauftrag seit >= 24 Monaten

FHEM: MacMini/ESXi, 2-3 FHEM Instanzen produktiv
In-Use: STELLMOTOR, VALVES, PWM-PWMR, Xiaomi, Allergy, Proplanta, UWZ, MQTT,  Homematic, Luftsensor.info, ESP8266, ESERA

Damian

Endlich - Fehler gefunden.

Es hat mich zwei Tage Suche meine Lebens gekostet  >:(

Die Herausforderung war eine cfg-Datei mit 624 entities zu überprüfen

ZitatServer started with 624 defined entities (fhem.pl:21056/2020-01-26 perl:5.028001 os:linux user:fhem pid:2407)

Ich wette, dass keiner drauf kommen wird.

Als Tipp zum raten, es war ein Attribut in global, welches von fhem sogar selbst gesetzt wurde ;)
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

herrmannj


enno

Einfacher FHEM Anwender auf Intel®NUC

CoolTux

Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

herrmannj

Verbose. (Glaube nicht dass ich damit gewinne. Aber he...)

enno

Wenn es was zu gewinnen gibt  :) Ich tippe auf Attribut nofork

Gruss
  Enno
Einfacher FHEM Anwender auf Intel®NUC

TomLee

#26
featurelevel das ab jetzt per default aktiviert ist.

Damian

Zitat von: enno am 29 Januar 2020, 19:22:45
Wenn es was zu gewinnen gibt  :) Ich tippe auf Attribut nofork

Gruss
  Enno

Du hast gewonnen!

Hilfe zum Attribut:

Zitatnofork
Wenn dieses Attribut oder "attr global logfile -" gesetzt ist, dann wird FHEM nicht im Hintergrund abgearbeitet. Dieses Attribut ist bei einigen FHEM Installationen auf FRITZ!-Boxen notwendig, und wird fuer Windows automatisch gesetzt.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

CoolTux

Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Wernieman

Stimmt .. war irgendwo schon mal so ..

Dürfte an dem Config-File liegen. Das geht nicht davon aus, das geforkt wird ..

P.S. Unter welchem user wird fhem jetzt ausgeführt? Prüfe das mal ..
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

CQuadrat

Also war Windows schuld [emoji6]


Duck und weg....





Gesendet mit meiner Reiseschreibmaschine.
FHEM auf Mini-ITX-Server mit Intel Quad-Core J1900:
+ HM: HM-LAN, HM-USB, HM-MOD-UART mit div. HM-Komponenten
+ RFXtrx: Funkwetterstation Bresser mit ext. Thermometer, Regenmesser und Windmesser
+ TUL (KNX-Anbindung), KM271 (per ser2net), SONOS (div. Gimmicks), OneWire, Hue

enno

Einfacher FHEM Anwender auf Intel®NUC