Probleme mit Watchdog

Begonnen von Samsi, 12 August 2014, 00:29:55

Vorheriges Thema - Nächstes Thema

Samsi

Es scheint, als wäre die Watchdog-Anleitung noch nicht ganz durchdacht.

Ich habe mit

define heartbeat at +*00:01:00 {qx(touch /opt/fhem/log/fhem.heartbeat)}

die heartbeat-datei definiert und dann den Watchdog gestartet. Der BBB lief auch schön weiter. Um einen Fehler zu simulieren habe ich dann mit

delete heartbeat

den Heartbeat ausgeschaltet und erwartungsgemäß  hat der BBB nach 3 minuten rebootet (ich habe in der watchdog.conf  180 sekunden eingestellt).

Danach hin ich in einer Bootschleife, da FHEM wohl nicht schnell genug startet UND den 'heartbeat at' ja ach erst 1 Minute nach dem Start ausführt. Im Ernstfall, wenn FHEM abstürzt, hätte es also nicht funktioniert.

Zum Glück konnte ich mich noch für Sekunden einloggen und mit mv /etc/watchdog.conf /etc/watchdog.old den watchdog umkonfigurieren, das er beim nächsten reboot nicht mehr startet.

Ein blick auf die fhem.heartbeat hat mir dann auch bestätigt, das FHEM gar nicht mehr zum ausführen von 'heartbeat at' kam.

Also Achtung, sehr gefährlich.

Kann man den Watchdog irgendwie konfigurieren, das er seine Arbeit erst 10 Minuten nach einem Neustart aufnimmt, damit man genug zeit hat, falls etwas schief geht?











FHEM 5.5 / BBB Debian Wheezy

Homematic CFG-LAN

HM-Sec-MDIR / HM-Sec-SD / HM-Sec-WDS / HM-LC-Sw2-FM / HM-Sec-SC / HM-LC-Sw1PBU-FM / HM-SCI-3-FM / HM-Sec-Key / HM-RC-Key3-B / HM-LC-Dim1TPBU-FM /  HM-CC-RT-DN / HM-PBI-4-FM / HM-RC-Key4-2 / HM-ES-PMSw1-Pl / HM-LC-Sw4-WM

betateilchen

ja, kann man. Und irgendwo hier im Forum hatte ich auch schonmal exakt auf dieses Problem hingewiesen und die Lösung beschrieben.

In der crontab von root folgenden Eintrag hinzufügen:

@reboot /bin/sleep 300; /usr/bin/touch /opt/fhem/log/fhem.heartbeat; /etc/init.d/watchdog start

und mit update-rc.d dafür sorgen, dass der watchdog nicht beim Systemstart automatisch gestartet wird.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

rasti

Hallo,

ich hatte heute genau dieses Problem, der Watchdog war schon mehrere Monate installiert und lief, aber heute ist FHEM nun wirklich mal abgestürzt und der Raspi befand sich in einer Endlosbootschleife.  Ich war heute über 2 Stunden damit beschäftigt, diesen blöden Fehler zu finden und zu beheben....Raspi aus Zählerschrank ausgebaut usw.  >:(

Leider ist anscheinend nirgendwo eine Komplettanleitung zu finden, ich versuche das mal hiermit zu ändern, wenn was falsches drinstehen sollte, bitte melden.

=>

Mit putty/ssh auf dem Raspi einloggen

Kernalmodul laden mit
sudo modprobe bcm2708_wdog
oder
sudo modprobe bcm2835_wdt


Watchdog installieren
sudo apt-get install watchdog


Watchdog-Konfigurationsdatei öffnen und editieren:
sudo nano /etc/watchdog.conf ausführen


Die beiden folgenden Zeilen in watchdog.conf suchen auskommentieren (# am Zeitenanfang entfernen)
watchdog-device        = /dev/watchdog
max-load-1             = 24


Am Ende von watchdog.conf die folgenden Zeilen hinzufügen (1200 entspricht Reboot nach 20 min)
file = /opt/fhem/log/fhem.heartbeat
change = 1200


watchdog.conf speichern und verlassen

Crontab ändern
sudo nano /etc/crontab

Die folgende Zeile in crontab reinkopieren ( die Zahl 300 steht für 5 Minuten, die FHEM jetzt Zeit hat, die weiter untenstehende Heartbeat-Datei zu schreiben) :
@reboot /bin/sleep 300; /usr/bin/touch /opt/fhem/log/fhem.heartbeat; /etc/init.d/watchdog start


Watchdog starten
sudo /etc/init.d/watchdog start


Die folgende Zeile in die fhem.cfg kopieren :
define heartbeat at +*00:01:00 {qx(touch /opt/fhem/log/fhem.heartbeat)}



Mir ist übrigens noch nicht die Zeile @reboot /bin/sleep 300; /usr/bin/touch /opt/fhem/log/fhem.heartbeat; /etc/init.d/watchdog start
klar. Ich verstehe das so, dass mit /etc/init.d/watchdog start nach 300s der Watchdog startet und FHEM in der Zeit die Datei fhem.heartbeat neu schreiben kann.
Was hier aber das hier /usr/bin/touch /opt/fhem/log/fhem.heartbeat; macht verstehe ich nicht. Kann das mal jemand erklären ?

Viele Grüße

Ralf

Wernieman

Ich wrde Dir empfehlen, kein reboot zu machen!

Bei Linux bedeutet immer eine reboot heufig den Verlust sämmtlicher gründe, WARUM fhem nicht lief.

Da würde ich Dir ein reboot von FHEM empfehlen!

Linux <> Windows, wo ein reboot eigentlich häufiger empfehlenswert ist (Danke GUI)
- 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