Donnerstag, 1. November 2018

Raspberry Pi - python Prozess automatisch neustarten

Ich habe festgestellt, dass sich mein python Script aus dem Beitrag Raspberry Pi - OLED Display (SSD1306) I2C ansteuern und Temperatur auslesen nach einer gewissen Zeit manchmal automatisch beendet.

Mit dem folgenden bash Script ist es möglich zu erkennen, ob der Prozess noch aktiv ist. Sollte dies nicht der Fall sein, wird das python Script wieder gestartet.

ps -aux | grep python
pi 2396  7.7  2.1  13904  9404 pts/0    S    20:08   0:01 python OLEDdisplayTemp.py


Eintrag in der "crontab -e" (check alle 9min):

*/9 *    *   *   *     /home/pi/restartDisplay.sh >/dev/null 2>&1

restartDisplay.sh(www.shemel.de/download/raspberry/restartDisplay.sh)

#!/bin/bash
# (c) Sebastian Hemel, 2018
# show if the python script for the OLEDdisplay is running and do a restart

ps -aux | grep -v grep | grep OLEDdisplayTemp >/dev/null
if [ $? -eq 0 ];
then
     echo
     echo "Process 'OLEDdisplayTemp' is running."
     echo
else
     echo
     echo "Process 'OLEDdisplayTemp' is NOT running."
     echo "restarting..."
     echo
     python /home/pi/OLEDdisplayTemp.py &
fi

1 Kommentar:

  1. Alternativ ist auch ein ausführen mit Hilfe von systemd möglich. Siehe auch https://wiki.archlinux.org/title/Systemd/Timers#Manually und https://superuser.com/questions/513159/how-to-remove-systemd-services .

    systemd-run --on-active=300 /home/pi/restartDisplay.sh

    AntwortenLöschen