Veröffentlicht in FHEM

RPi per Watchdog neustarten

Als Server für die Hausautomation soll FHEM auf dem RPi natürlich 24/7 laufen. Grundsätzlich ist das mit passender Hard- und Software (Stichwort „Netzteil„) auch stabil möglich. Dennoch kann der Kleine aber auch mal in die Knie gehen.

Die Gründe dafür können vielfältig sein – von mangelndem Speicherplatz über Hardwareprobleme bis hin zu Fehlkonfigurationen ist so einiges möglich.

Damit man den Ausfall nicht erst bemerkt, wenn schon längst nichts mehr läuft, bietet der Raspberry ein nützliches Extra. Auf dem verbauten Chip ist zusätzlich ein Hardware-Watchdog installiert. Er sorgt dafür, dass im Fehlerfall das System neugestartet wird.

Nähere Infos findet man hier: http://www.gieseke-buch.de/raspberrypi/eingebauten-hardware-watchdog-zur-ueberwachung-nutzen

Um den Watchdog zu verwenden, muss man ihn zunächst einrichten.

1. Kernelmodul installieren

sudo modprobe bcm2835_wdt

(Achtung! In vielen Beiträgen wird noch Bezug auf bcm2708_wdog genommen. Das ist in den neueren Kernelversionen nicht mehr korrekt!)

2. Watchdog-Dämon installieren

sudo apt-get install watchdog

(Damit ist der Watchdog installiert, aber noch nicht gestartet!)

3. Dämon konfigurieren

Zunächst ruft man die Konfig-Datei im Nano-Editor auf:

sudo nano /etc/watchdog.conf

Danach aktiviert man die folgenden Zeilen, indem man das # am Zeilenanfang entfernt:

watchdog-device        = /dev/watchdog
max-load-1             = 24

4. Zu überwachende Datei anlegen

Nun braucht der Watchdog noch die Info, was er überhaupt überwachen soll. Dazu trägt man ebenfalls in die Konfig-Datei diese beiden Zeilen ein:

file = /opt/fhem/log/fhem.heartbeat
change = 180

In der oberen Zeile definiert man eine Datei namens fhem.heartbeat, die – gemäß der unteren Zeile – alle 180 Sekunden auf Änderungen überprüft wird.

Damit die Datei auch angelegt und aktualisiert werden kann, muss man FHEM dazu noch den Auftrag erteilen. Das geschieht mittels eines „at“:

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

5. Watchdog starten

Zu guter Letzt muss man den Watchdog nur noch starten:

sudo /etc/init.d/watchdog start

Wichtig ist hierbei das sudo bzw. generell die passende Berechtigung, da der Watchdog sonst nicht startet!

Ab sofort sollte bei einem Ausfall der Watchdog das System nach maximal 180 Sekunden wieder ans Laufen bringen.

Advertisements

3 Kommentare zu „RPi per Watchdog neustarten

  1. Meine Erfahrung ist, dass das auch nicht jeden Fall abfängt. Da ich eine Heizungssteuerung betreibe habe ich eine zusätzliche Hardware vorgeschaltet. Über einen GPIO Pin setze ich bei jedem Durchlauf einen 555 Timer zurück. Bleibt es aus wird kürz abgeschaltet und neu gestartet.

    1. Ja, so 100%-ig scheint das tatsächlich nicht zu funktionieren. Ich hatte auch schon den Fall, dass ich den RPi stromlos stellen musste, damit er wieder läuft. Aber besser als nichts ist der Watchdog dann doch … 🙂

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden /  Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden /  Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden /  Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden /  Ändern )

Verbinde mit %s