fhem überwachen (watchdog)

Begonnen von Elektrolurch, 05 Juli 2014, 10:08:26

Vorheriges Thema - Nächstes Thema

hjr

Gestern Nacht um Punkt 00:00 Uhr hat doch tatsächlich fhem (auf einüem RasPi 1) den Dienst quittiert und ich habe mich Dank der vielen Anregungen hier ebenfalls auf eine Watchdog Lösung verlegt.

Dazu habe ich einen fhem "at" und einen cron job definiert, dazu ein kleines Shell Script geschrieben. Der echte Bash Guru würde dafür sicherlich nur einen Einzeiler im Crontab eintragen, aber ich geb mich damit mal zufrieden.

Anbei mein Bash Script.

LG

hjr

betateilchen

#46
Zitat von: hjr am 24 Dezember 2017, 16:32:00
Der echte Bash Guru würde dafür sicherlich nur einen Einzeiler im Crontab eintragen ...

Popcorn... :)

Der echte Bash Guru würde FHEM einfach als service mit gesetzter restart-option aufrufen, der sich selbst überwacht und nach einem Absturz auch wieder automatisch neu startet. Das Betriebssystem kann das selbst nämlich out-of-the-box am allerbesten.

Und man muss nicht jeden Quark in SVN einchecken, vor allem nicht, wenn er so überflüssig ist wie das heute veröffentlichte bash-skript.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

hjr

Gut,

der Thread beschäftigt sich maßgeblich mit dem Use-Case des nicht mehr reagierenden fhem, der Crash-Fall ist ja einfach abgehakt.

Tatsächlich war mir nicht bewusst, das systemd auch einen Watchdog bietet, der diesen etwas komplizierteren "Hänger" Use-Case ebenfalls abdeckt. Vielen Dank für den Tipp.
Leider benutzt fhem noch den sysv init Kompatibilitätsmodus und der systemd-sysv-generator setzt bei mir "Restart=no".

Gibt es Gründe warum wir noch an sysv festhalten?

LG

betateilchen

Zitat von: hjr am 25 Dezember 2017, 01:05:49
Gibt es Gründe warum wir noch an sysv festhalten?

Tun wir gar nicht.

https://forum.fhem.de/index.php/topic,54271.0.html

Eine fhem.service Konfigurationsdatei ist inzwischen in ./contrib/init-scripts vorhanden und benutzt der Einfachheit halber das "alte" Startskript, weil viele Anwender damit besser zurechtkommen als mit der teils kryptischen systemd-Syntax.

Das könnte sich in einer kommenden FHEM Version aber sicher auch irgendwann ändern.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

betateilchen

Zitat von: betateilchen am 25 Dezember 2017, 11:07:09
Das könnte sich in einer kommenden FHEM Version aber sicher auch irgendwann ändern.

Eines hat sich heute schon geändert: Das fhem.service file in ./contrib/init-scripts benutzt ab sofort nicht mehr das alte init.d Startskript.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

hjr

Das klingt sehr gut.

Die ./contrib/init-scripts/fhem.service hilft natürlich wenig wenn sie nicht in der Debian Distro berücksichtigt wird. Habe das komplettiert und die Paket-Trigger aktualisiert. Letzteres mutiert allerdings keine existierende Installation von sysv zu systemd. Das halte ich für gut so und erkenne das als Intention. Die Trigger wurden so von mir getestet und laufen.

Die Wiederstart Funktionalität mit systemd und dem "Restart=always" habe ich ebenfalls getestet (RasPi 1). Es funktioniert für den Crash-Fall (kill -9) perfekt und sehr schnell.

Die hier im Thread so lange diskutierte Watchdog Funktionalität für den Fall eine "Hängers" ist damit allerdings nicht gegeben. Um das mit systemd zu realisieren müsste fhem.pl das sd_notify Protokoll implementieren. -> https://superuser.com/questions/689017/can-systemd-detect-and-kill-hung-processes

LG

betateilchen

Zitat von: hjr am 25 Dezember 2017, 19:26:49
Die ./contrib/init-scripts/fhem.service hilft natürlich wenig wenn sie nicht in der Debian Distro berücksichtigt wird. Habe das komplettiert und die Paket-Trigger aktualisiert.

Du hast inzwischen schon zweimal an fremden Dateien rumgepfuscht.
Lass bitte die Finger von FHEM Dateien, die Dir nicht gehören.

Danke.

-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

frober

Hallo zusammen,

Ich habe es auch mit monit versucht. Nach der Erstkonfiguration bekomme ich nun einen "Syntax Error ' ' ", immer in der letzten Zeile.
Die monitrc habe ich mit nano bearbeitet und mit Notepad++ auf Win kontrolliert. Ich kann keinen Fehler finden auch die Internetsuche war erfolglos.

Hat jemandmand eine Idee?

Gruß Bernd
Raspi 3b mit Raspbian Buster und relativ aktuellem Fhem,  FS20, LGW, PCA301, Zigbee, MQTT, MySensors mit RS485(CAN-Receiver) und RFM69, etc.,
einiges umgesetzt, vieles in Planung, smile

********************************************
...man wächst mit der Herausforderung...

ChrisW

also gestern is mein SWAP vollgelaufen = PI3 nurnoch am hängen SSH war quasi auch nicht mehr möglich nach 100 versuchen ein connect aber keine möglichkeit für eine reboot ..
Musste stecker ziehen .. das Problem das System hing so fest da war nichts mehr mit Info an mich ..

So ein Watchdog sollte also irgendwie von "außen" funktionieren .. da ich extern drauf zugreife hab ich nun erstmap uptimerobot einen Web Dienst aktiv. Da bekomme ich dann wenigstens eine Info.
Raspberry PI3 mit allem möglichen.

frober

Zitat von: ChrisW am 25 Juli 2018, 08:01:25
also gestern is mein SWAP vollgelaufen = PI3 nurnoch am hängen SSH war quasi auch nicht mehr möglich nach 100 versuchen ein connect aber keine möglichkeit für eine reboot ..
Musste stecker ziehen .. das Problem das System hing so fest da war nichts mehr mit Info an mich ..

So ein Watchdog sollte also irgendwie von "außen" funktionieren .. da ich extern drauf zugreife hab ich nun erstmap uptimerobot einen Web Dienst aktiv. Da bekomme ich dann wenigstens eine Info.
Probiere es mal mit dem Hardware-Watchdog vom Raspi.


Mein Fehler ist behoben:
Im meiner Erweiterung der Konfiguration​ (email-Versand) war ein Fehler.
Jetzt läuft's....

Gesendet von unterwegs.

Raspi 3b mit Raspbian Buster und relativ aktuellem Fhem,  FS20, LGW, PCA301, Zigbee, MQTT, MySensors mit RS485(CAN-Receiver) und RFM69, etc.,
einiges umgesetzt, vieles in Planung, smile

********************************************
...man wächst mit der Herausforderung...