Home > Tutorials > OSCam Watchdog für den Raspberry Pi

OSCam Watchdog für den Raspberry Pi

Wer den Raspberry Pi als Server für OSCam oder ähnliche Dienste verwendet ist darauf angewiesen das der RPi immer zuverlässig seinen Dienst tut. Wer möchte schon andauernd zum Pi laufen und den Stecker ziehen? In diesem Artikel möchte ich euch die Möglichkeiten eines automatischen Neustarts über einen Systemwachhund (Watchdog) aufzeigen.

Hinweis:

Die Instabilität eines Systems hat immer eine oder mehrere Ursachen, ich kann nur davon abraten anstelle Fehler zu beheben einfach einen Watchdog zu verwenden um die Probleme zu Umgehen.

Vorbereitung zum Dauerbetrieb

Vor Einrichtung eines Servers und dem 24×7 Dauerbetrieb sollten folgende Dinge beachtet werden.

Raspberry Pi Model B+

Häufige Fehler

Eine Häufige Fehlerursache ist die Verwendung eines billigen Netzteils für die Stromversorgung. Der Raspberry Pi benötigt ein Netzteil mit mindestens 700mA. Persönlich habe ich mit folgenden zwei Markennetzteilen sehr gute Erfahrungen gemacht, die auch mit angeschlossenen USB-Geräten einen stabilen Dauerbetrieb des Raspberry Pi ermöglichen

SD-Karte optimieren

Die Speicherkarten sind leider nicht für den Dauerbetrieb ausgelegt und gehen bei massiven Schreib- und Lesezyklen gerne mal kaputt. Daher gilt es diese wo möglich zu reduzieren (gilt auch für Reboots). Eine Möglichkeit ist die Daten auf USB Speicher auszulagern und nur die für den Start notwendigen Daten auf der SD-Karte zu belassen. Alternativ können Schreibintensive Bereiche wie Logs in den RAM ausgelagert werden.
Für einiger dieser Systemverzeichnisse kann es daher sinnvoll sein, diese ins RAM auszulagern.

Um /var/log und /var/run in den Arbeitsspeicher auszulagern, müssen folgende Einträge in der /etc/fstab hinzugefügt werden:

Nachteil:
Verlagert man Dateien und Ordner in den RAM sind diese nach einem Neustart nicht mehr verfügbar!

Die Zugriffe können durch deaktivieren des “Swapping” (Auslagerung von Daten aus dem Arbeitsspeicher) weiter reduziert werden. Das ist allerdings nur sinnvoll wenn man nicht auf das swapping angewiesen ist. Insofern nur OSCam zum Einsatz kommt sollte der RasPi auch ohne swapping zurecht kommen.

Kühlung des RasPi

Obwohl der Raspberry Pi bei Auslieferung über keine Kühlkörper verfügt, stellt dies im Normalfall aufgrund der geringen Wärmeentwicklung kein Problem dar. Wird der RPi jedoch übertaktet oder im 24/7 Dauerbetrieb eingesetzt, ist es sinnvoll kleine Kühlkörper aus Aluminium nachzurüsten. Ebenso wenn ein Gehäuse ohne Lüftungsschlitze verwendet oder der RasPi an einem warmen Ort (z.B. hinter dem Fernseher) betrieben wird. Das senken der Temperatur wirkt sich positiv auf die Lebensdauer aus.

Hardware System Watchdog

Der BCM2708-Chip, welcher auf dem RasPi verbaut ist, verfügt standardmäßig bereits über einen Hardware gesteuerten Watchdog. Dieser startet im Fehlerfall das System neu. Um diesen zu verwenden wird ein Kernelmodul und ein Dienst benötigt.

Der Dienst sendet in regelmäßigen Abständen “Lebenszeichen” an den Hardware Watchdog, empfängt dieser kein Lebenszeichen mehr vom Dienst nimmt er an dass das Betriebssystem nicht mehr sauber läuft und startet den RasPi neu.

Um den Dienst und das Kernelmodul (Treiber) für den Watchdog zu aktivieren:

Dann muss noch die Konfigurationsdatei des Watchdog Dienst angepasst werden, um das Gerätedatei des Hardware Wachhunds und die Bedingungen für einen Reset einzustellen

In der Konfigurationsdatei müssen die folgenden Zeilen aus kommentiert werden (Raute am Anfang entfernen):

Zum aktivieren der Konfiguration ist ein Neustart des Dienstes notwendig

Andere Variante für die Überwachung durch den Watchdog Daemon findet ihr in der manpage.

OSCam Dienst neu starten

Das Problem des Hardware Watchdog ist das dieser nicht auf ein abgestürztes OSCam reagieren kann. Daher ist es sinnvoll ein zusätzliches Script, welches den OSCam Dienst prüft, einzurichten. Das Skript prüft auf eine existierende PID File, ist keine vorhanden wird oscam gestartet. Das PID File liegt im Standard in /tmp/oscam.pid für einen anderen Speicherort kann in der oscam.conf folgendes angepasst oder eingetragen werden:

Beispiel:
pidfile = /var/run/oscam.pid

Erstellt eine Datei und speichert den Inhalt des scripts unten darin ab, insofern ihr nicht meine Anleitung verwendet habt müssen die Pfade angepasst werden.

Die Datei muss nach dem speichern mit nano noch ausführbar gemacht werden

Als letztes benötigen wir noch einen cron job bzw einen cron table Eintrag welcher das Prüfscript alle paar Minuten ausführt, hierzu starten wir croncrontab

Und fügen folgende Zeile am Ende ein (*/5 = alle 5 Minuten)

Script

Viel Spass!

1 Stern2 Sterne3 Sterne4 Sterne5 Sterne (1 votes, durchschnittlich: 5,00 von 5)
Loading...

Über raspberry.tips

17 Kommentare

  1. Hi! Ich habe beim Oscam-Artikel gefragt, ob es normal ist, dass Oscam zigmal in der Prozessliste auftaucht. Es stellte sich heraus, dass das Skript aus diesem Artikel dafür verantwortlich ist, vermutlich, weil es in /var/run kein oscam.pid gibt . Ich habe alles den Anleitungen entsprechend gemacht. Hat jemand eine Idee, warum das so ist?

    Ich habe auch versucht, OSEmu auch per Skript überwachen zu lassen, hab das gleiche Skript genommen und angepasst. OSEmu.pid gibt es auch nicht in /var/run, aber da taucht aber nichts doppelt, dreifach, zwanzigfach auf, was aber scheinbar daran liegt, dass vermutlich nur ein Prozess von OSEmu möglich ist.

  2. sollte dann in der oscam.conf auch eingetragen werden
    pidfile = /var/run/oscam.pid

    ansonsten speichert oscam es in /tmp

  3. hallo
    ich habe den oscam server nach obiger Anleitung installiert ……rennt gut..

    jetzt habe ich eine frage

    ist es möglich eine rot und grüne LED anzusteuern je nach dem ob oscam läuft (grün) oder nicht (rot)

    wie würde so etwas funktionieren ? kann da jemand helfen ?

  4. Hallo Zusammen,

    was heißt genau dieser Ausdruck >/dev/null 2>&1

    mfg

    Mike

  5. Guten Tag, ich habe ein Problem mit der Watchdog.conf.
    Ich habe die Rauten vor den Parametern entfernt kann aber nun nicht aus der Config Datei heraus mit Strg+X oder Y und das speichern mit Strg+O kam mir auch nicht abgeschlossen vor.

    Was kann ich da tun oder was habe ich vergessen?
    Vielen Dank im Voraus.

    • Du gibst ein STRG+X zum Beenden, dann fragt nano ob du speichern möchtest und gibst ein Y ein und drückst dann ENTER. Dann wurde gespeichert und Beendet.

    • Ich entferne die Rauten mit der DEL Taste auf meiner Tastatur aber wenn ich versuche etwas zu schreiben kommt nur ein Signal von meinem Computer. Ich greife per SSH auf den Pi zu.

      Ich kann nichts eingeben und auch die Befehle mit STRG Taste funktionieren nicht. Dies nur wenn ich den Befehl sudo vi /etc/watchdog.conf eingebe und auf die Datei zugreife.

      Auch wenn ich vorher sudo chmod 755 eingebe erhalte ich das gleiche Ergebnis und kann nichts bestätigen und abschließen. =(

      Woran kann das liegen? Was mache ich verkehrt?

    • Ich bin hier eigentlich auch nur stiller Mitleser, aber versuche doch mal sudo nano /etc/watchdog.conf
      dann funktioniert das auch mit dem Speichern.

    • Jetzt ist mir das erst aufgefallen, entschuldigt. es ist natürlich nano und nicht vi, habe ich angepasst. Danke für den Hinweiß Moritz.

  6. Sehr gute Seite hier, habe schon viel gelesen und angewendet, vielen Dank dafür.

    Ist es eigentlich möglich, den Watchdog testen, dass er im Ernstfall auch tatsächlich anspringt? Oder muss ich erst auf den Ernstfall warten um dann vielleicht feststellen zu müssen, dass es nicht funktioniert wie gewünscht?

    Danke und Grüße…

  7. Also wenn ich meinen Oscam Server von “Hand” abschieße, dann müsste er doch wieder gestartet werden oder?

     

    Das klappt leider nicht, was mach ich falsch? Ich habe alles genau übernommen, nur das Verzeichnis angepasst.

    MfG

  8. Sideeffectbeim konfigurieren der /var/log als TMP-Filesystem:

    Der Webserver Nginx startet nicht ohne das Verzeichnis /var/log/nginx.
    Dies ist aber nach einem Neustart nicht (mehr) vorhanden. Das Umdefinieren der Logfiles nach /var/log hilft nicht, weil vermutlich beim Start immer einmal auf die Datei /val/log/nginx/error.log zugegriffen wird.
    Dies kann auch mit nginx -t verifiziert werden.

  9. Danke erst mal für deine ganzen Anleitungen.
    Also bei deinem Script kommt als Ausgabe bei mir:

    /usr/local/bin/oscamchk: 4: /usr/local/bin/oscamchk: Syntax error: “;” unexpected

    Leider habe ich keine Ahnung von Scripts, kannst du da weiterhelfen?
    Bisher habe ich das gleiche Problem wie chriiisss, dass wenn ich Oscam selber abschalte der Watchdog leider nichts macht.

  10. Hallo….

    schöne Anleitung, aber der Watchdog läuft so nicht…
    Fehlermeldungen ab Zeile 4: (wie bei meinen Vorgängern auch)

    Schade dass hier keiner mehr Antwortet…

    MfG. Mike

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.