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
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 .
AntwortenLöschensystemd-run --on-active=300 /home/pi/restartDisplay.sh