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?
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.
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
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)