Hallo, ich habe einen RevPi Connect. Ich nutze ihn um mit Node-Red. Leider hängt sich Node-Red immer wieder auf und man kann erst nach einem Restart wieder richtig damit arbeiten. Deshalb möchte ich den Hardware Watchdog nutzen.
Auf dem RevPi ist ein Beispielprogramm, das die Internetverbindung überprüft. Leider habe ich nirgends ein Programm / Skript gefunden, das einen Prozess überwacht. Die Idee wäre, falls der Prozess abstürzt, dass der Hardware Watchdog einen Neustart durchführt. Der Prozess von Node-Red heißt im Taskmanager node-red.
Welchen Code muss ich eingeben, damit die gegebene Funktion erfüllt wird und der Prozess überwacht wird und damit der Watchdog immer zurückgesetzt wird?? Danke schonmal für eure Hilfe!!!
Hardware Watchdog
Hi, das hört sich erstmal seltsam an. Vielleicht hängt sich Node Red gar nicht auf sondern wird mehrfach gestartet.
Das kann nämlich passieren wenn du einen Flow mit einem Endlos-Loop hast, was ja durchaus gewünscht sein kann,
und du diesen mehrfach Deploy'st.
Dann hilft nur einmal den Flow unterbrechen und Deploy'en. Dann den Flow wieder verbinden und Deploy'en.
Falls Dein Problem jedoch wirklich darin besteht, den Prozess zu überwachen habe ich eine positive Nachricht -
eventuell kannst du das mit Bordmitteln machen. Es gibt nämlich den "systemd", der die Dienste oder Daemon Prozesse überwacht und verwaltet.
Die Konfiguration zum Node Red Dienst kannst du hier sehen:
Hier gibt es eine Einstellung
Die kannst du auch ändern auf
Ich habe die Anleitung hier gefunden:
https://www.digitalocean.com/community/ ... l-examples
Hoffe ich konnte Dir helfen
Das kann nämlich passieren wenn du einen Flow mit einem Endlos-Loop hast, was ja durchaus gewünscht sein kann,
und du diesen mehrfach Deploy'st.
Dann hilft nur einmal den Flow unterbrechen und Deploy'en. Dann den Flow wieder verbinden und Deploy'en.
Falls Dein Problem jedoch wirklich darin besteht, den Prozess zu überwachen habe ich eine positive Nachricht -
eventuell kannst du das mit Bordmitteln machen. Es gibt nämlich den "systemd", der die Dienste oder Daemon Prozesse überwacht und verwaltet.
Die Konfiguration zum Node Red Dienst kannst du hier sehen:
Code: Select all
sudo nano /etc/systemd/system/multi-user.target.wants/nodered.service
Code: Select all
# Auto restart on crash
Restart=on-failure
Code: Select all
Restart=always
https://www.digitalocean.com/community/ ... l-examples
Hoffe ich konnte Dir helfen
Leider hat mir das nicht geholfen. Das Problem kommt eher vor wenn man mit Grafana etwas visualisiert. Deshalb kann es die Endlosschleife nicht sein. Dann kann es sein das sich der RevPi so aufhängt, dass es nur noch hilft, die Spannungsversorgung aus- und wieder einzuschalten. Danach funktioniert wieder alles. Deshalb ist auch der Hardware Watchdog genau das richtige. Nur leider weiß ich nicht wie man ihn konfiguriert, damit der RevPi sich von allein rebootet wenn er sich aufhängt.
Das ist das Beispielprogramm, das die Internetverbindung prüft. Was muss ich eingeben, um kontrollieren zu können, ob der RevPi sich aufgehängt hat( Oder ob der Prozess von Grafana / NodeRED agestürzt ist), damit ein Reboot erfolgt? Oder ist das überhaupt möglich??
#!/bin/sh
while : ; do
# let watchdog trigger on loss of internet connectivity
if ! /bin/ping -c1 -n 8.8.8.8 > /dev/null 2>&1 ; then
exit
fi
# feed watchdog
value=$(piTest -q -1 -r RevPiLED)
value=$(( ($value + 128) % 256))
piTest -w RevPiLED,"$value"
sleep 10
done
Das ist das Beispielprogramm, das die Internetverbindung prüft. Was muss ich eingeben, um kontrollieren zu können, ob der RevPi sich aufgehängt hat( Oder ob der Prozess von Grafana / NodeRED agestürzt ist), damit ein Reboot erfolgt? Oder ist das überhaupt möglich??
#!/bin/sh
while : ; do
# let watchdog trigger on loss of internet connectivity
if ! /bin/ping -c1 -n 8.8.8.8 > /dev/null 2>&1 ; then
exit
fi
# feed watchdog
value=$(piTest -q -1 -r RevPiLED)
value=$(( ($value + 128) % 256))
piTest -w RevPiLED,"$value"
sleep 10
done
Hi dann versuche es mal damit
Code: Select all
#!/bin/sh
while : ; do
if ! systemctl show nodered | grep -q ActiveState=active; then
exit
fi
# feed watchdog
value=$(piTest -q -1 -r RevPiLED)
value=$(( ($value + 128) % 256))
piTest -w RevPiLED,"$value"
sleep 10
done