Autor Thema: Über Watchdog den Raspberry Pi neu Starten wen die Lanverbindug nicht mehr steht.  (Gelesen 24530 mal)

Offline Olaf A

  • Full Member
  • ***
  • Beiträge: 111
Hallo Ihr,

Ich habe das Problem, dass mein Raspberry sich alle paar Tage bis hin zu Stunden aufhängt.
Nun ist mein Englisch nicht das Beste. In Netz habe ich gesehen, dass FHEM über einen watchdog verfügt.
Ich Stelle mir das so vor, dass der watchdog alle 5 min nachschaut, ob er über das Netzwerk eine Datei im Router findet.
Wenn diese nicht der Fall ist soll er den Raspberry neu Starten.

define <name> watchdog <regexp1> <timespec> <regexp2> <command>

Ich habe aber keine Ahnung wie ich das in diese Zeilen bekomme.
Kann mir da jemand Helfen?

Mit freundlichen Grüßen

Olaf Andresen
FHEM auf CubieTruck:
Max mit Cube, HMLAN; MAX-Thermostaten; Homematic-Komponenten, SIS PM Schalter, JeeLink.

Offline Olaf A

  • Full Member
  • ***
  • Beiträge: 111
Ergänzung:

An stelle der Datei im Router kann natürlich auch nachgeschaut werden ob Google noch da ist. :-)

Gruß Olaf
FHEM auf CubieTruck:
Max mit Cube, HMLAN; MAX-Thermostaten; Homematic-Komponenten, SIS PM Schalter, JeeLink.

Offline Olaf A

  • Full Member
  • ***
  • Beiträge: 111
Hallo Ihr,

nach dem ich mich jetzt durch diverse Foren gesucht habe, habe ich jetzt die .cfg Datei gefunden, die im Raspberry vorhanden ist.
Kann mir noch mal jemand helfen bevor ich wieder meinen Raspberry in eine Dauerschleife schicke.

Habe ich reingenommen:
ping
repair-binary
log-dir

max-load-1 war schon vorhanden.

Als Anlage habe ich die gesamte Datei angehängt.
Gruß Olaf

----------------------------------------------------------

watchdog.conf

ping         = 192.168.1.10   # Router
#ping         = 172.26.1.255
#interface      = eth0
#file         = /var/log/messages
#change         = 1407

# Uncomment to enable test. Setting one of these values to '0' disables it.
# These values will hopefully never reboot your machine during normal use
# (if your machine is really hung, the loadavg will go much higher than 25)
max-load-1      = 24
#max-load-5      = 18
#max-load-15      = 12

# Note that this is the number of pages!
# To get the real size, check how large the pagesize is on your machine.
#min-memory      = 1

repair-binary      = /usr/sbin/repair
#repair-timeout      =
#test-binary      =
#test-timeout      =

watchdog-device   = /dev/watchdog

# Defaults compiled into the binary
#temperature-device   =
#max-temperature   = 120

# Defaults compiled into the binary
#admin         = root
#interval      = 1
#logtick                = 1
log-dir      = /opt/fhem/log/watchdog

# This greatly decreases the chance that watchdog won't be scheduled before
# your machine is really loaded
realtime      = yes
priority      = 1

# Check if syslogd is still running by enabling the following line
#pidfile      = /var/run/syslogd.pid  

FHEM auf CubieTruck:
Max mit Cube, HMLAN; MAX-Thermostaten; Homematic-Komponenten, SIS PM Schalter, JeeLink.

Offline Prof. Dr. Peter Henning

  • Developer
  • Hero Member
  • ****
  • Beiträge: 8425
Sieht bei mir ähnlich aus, habe aber erst heute abend Zugriff auf meine Kiste.

Achtung: das ist nicht der Watchdog von FHEM - sondern der Hardware-Watchdog vom RPi. Der funktioniert bei mir bestens und bootet die Kiste neu, wenn das Netzwerk steht. Ist auch sinnvoll, denn z.B. kann ein FHEM-watchdog nach einem Absturz von FHEM gar nichts mehr ausrichten.

Ich bin noch nicht ganz zufrieden damit - denn abgesehen vom totalen Reboot kann man den RPi-watchdog auch Aktionen ausführen lassen wie:

- Neustart nur von FHEM
- Resetten entfernter CUNOs
- Reset des COC
- Neustart des USB-Systems

Alle drei benötige ich, habe nur noch nicht Zeit gefunden, ein komplexes Skript dafür zu schreiben.

LG

pah

Offline UweH

  • Hero Member
  • *****
  • Beiträge: 1742
Hallo,

ich habe den hier bei mir laufen und es funktioniert...: http://pi.gadgetoid.co.uk/post/001-who-watches-the-watcher

Andere Idee ist noch ein externer Hardware-Watchdog mit einem DS2413. Per Notify alle paar Minuten antriggern und der DS2413 wiederum startet einen externen Zeitschalter immer wieder, so dass die eingestellte Zeit nie abläuft. Wenn der RPi aussteigt, vergisst er das Triggern und der Zeitschalter resettet hart oder unterbricht kurz die Versorgungsspannung.

Schaltung dafür schwirrt schon im Kopf rum...

Offline Prof. Dr. Peter Henning

  • Developer
  • Hero Member
  • ****
  • Beiträge: 8425
Den habe ich auch. Einen externen Watchdog würde ich aber über den DS2417 realisieren.

LG

pah

Offline UweH

  • Hero Member
  • *****
  • Beiträge: 1742
Raffiniert...den hatte ich nicht auf dem Radar. Das muss ich mir wohl mal genauer ansehen... :)

Offline Martin Haas

  • New Member
  • *
  • Beiträge: 33
Habe heute festgestellt, dass sich die WLAN-Verbindung des EDIMAX-USB-WLAN nicht mehr selbst aufbaut, wenn die Fritzbox rebootet.

Da die RPI allerdings eine wichtige Rolle als NFC-Reader leisten soll, geht das gar nicht.

Nun prüft hier vorsichtshalber alle 10min ein cronjob auf der RPI, ob die Fritzbox noch erreichbar ist. Andernfalls wird das Netzwerk neu gestartet. Wer will kann auch anstatt dessen den Rechner rebooten. Anstatt ping gehen natürlich auch andere Kriterien.


########## /usr/local/bin/rpi_network_chk.sh

#!/bin/bash

# Restartet das Netzwerk, wenn kein Ping mehr auf die Fritzbox möglich
# Hintergrund: Raspberry PI hat das WLAN nach Fritzboxausfall nicht mehr aufgebaut (Ursache nicht gesucht)

FritzBox='192.168.0.254'

  /bin/ping -c1 $FritzBox
  pingtest=$?
  if [[ $pingtest == 0 ]]
  then
        {
        echo "WLAN ok"  
        echo "kein /etc/init.d/networking restart"
        }
  else
        {
        echo "WLAN nicht ok"
        /etc/init.d/networking restart
        }
  fi



Die Datei muss ausführbar sein.
chmod +x /usr/local/bin/rpi_network_chk.sh

Der Eintrag in der /etc/crontab sieht so aus:

######### /etc/crontab

...
*/10 * * * * root /usr/local/bin/rpi_network_chk.sh >>/dev/null 2>&1
...

Offline Criz

  • New Member
  • *
  • Beiträge: 34
Zitat von: Olaf Andresen schrieb am Mo, 07 Januar 2013 19:29
Hallo Ihr,


----------------------------------------------------------

watchdog.conf

ping         = 192.168.1.10   # Router



Ich habe watchdog .conf genau wie oben beschrieben angepasst.
Wenn ich den Ping hinzu nehme, bootet der Raspi ständig neu.
Habe natürlich die ip meines Routers genommen.

Offline Martin Haas

  • New Member
  • *
  • Beiträge: 33
Laut
http://www.megaleecher.net/Watchdog_for_Raspberry_Pi
funktioniert ping im watchdog nicht (ich nutze Wachdog nicht).

NOTE : It is advisable to backup your SD card before trying watchdog timer as your Pi might get into an endless reboot loop if not done properly. Also, the ping feature seems not to work and results in endless reboots on start, one reason could be unavailability of network when watchdog tries the ping and fails which makes the Pi reboot.

==> um den reboot wieder loszuwerden, die Karte im PC mounten und im einfachsten Fall einfach /etc/watchdog.conf umbenennen. Wie man es dreht und wendet, irgendwie sollte man sich mit Linux auseinandersetzen. Insofern halte ich hier watchdog überhaupt für etwas übertrieben -- aber jeder wie er will.

Offline Prof. Dr. Peter Henning

  • Developer
  • Hero Member
  • ****
  • Beiträge: 8425
Der Einsatz des watchdog ist sicher nicht übertrieben. Der bootet nämlich - weil unabhängige Hardware ! - den Raspberry auch dann, wenn das Linux-System sich ins Nirwana verabschiedet hat. Das kann man selbst ausprobieren, indem man eine Forkbombe loslässt - dazu einfach :(){ :|:& };: in eine Shell eintippen (aber bitte nur, wenn man sich mit Linux auskennt...)

LG

pah

Offline Criz

  • New Member
  • *
  • Beiträge: 34
Wenn ich den ping nicht nehmen kann,was dann?


Wenn ichs mir recht überlege, ist der Einsatz von watchdog auch nicht die Lösung, denn ich würde nur einen reboot erzwingen, wenn der Fehler auftritt. Am liebsten würde ich die Ursache des Fehlers beseitigen.

smsc95xx 1-1.1:1.0: eth0: Failed to write register index 0x00000014
smsc95xx 1-1.1:1.0: eth0: Failed to write HW_CFG_LRST_ bit in HW_CFG register, r$

Offline Dr. Boris Neubert

  • Global Moderator
  • Hero Member
  • ****
  • Beiträge: 5050
  • Are we just self-replicating DNA?
Zitat von: Criz schrieb am Sa, 19 Januar 2013 15:33

Wenn ichs mir recht überlege, ist der Einsatz von watchdog auch nicht die Lösung, denn ich würde nur einen reboot erzwingen, wenn der Fehler auftritt. Am liebsten würde ich die Ursache des Fehlers beseitigen.


Hast Du schon mit rpi-update den neuesten Kernel auf den Raspi gebracht?

Grüße
Boris
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

Offline Prof. Dr. Peter Henning

  • Developer
  • Hero Member
  • ****
  • Beiträge: 8425
Hier mehr zu diesem Problem - auf Deutsch.

http://raspberrycenter.de/forum/raspberry-haengt-sich-immer-wieder

Bitte mal die Datei /boot/cmdline.txt posten.

LG

pah

Offline Criz

  • New Member
  • *
  • Beiträge: 34
Zitat von: Prof. Dr. Peter Henning schrieb am Sa, 19 Januar 2013 15:41
Hier mehr zu diesem Problem - auf Deutsch.

http://raspberrycenter.de/forum/raspberry-haengt-sich-immer-wieder

Bitte mal die Datei /boot/cmdline.txt posten.

LG

pah


DEn Link habe ich beim Googlen auch gefunden.

cmdline.txt sagt folgendes:
dwc_otg.lpm_enable=0 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait


 

decade-submarginal