Faire en sorte que si le programme python se plante, la Raspberry Pi reboot.
Un Watchdog est un processus permettant de rebooter la raspberry lorsqu'elle ne répond plus au bout d'un certain temps.
On initialise un watchdog en lui donnant un temps à décompter. Si le temps est écoulé il reboot la Raspberry. Il est possible de remettre à 0 le décompte, on dit alors qu'on "nourri" le watchdog.
Attention, une fois le watchdog démarré, il n'est pas possible de le reconfigurer ou d'en changer la valeur.
sudo apt-get install watchdog
sudo update-rc.d watchdog defaults
sudo vi /etc/watchdog.conf
A la fin du fichier, ajouter :
# Mise en route du watchdog ************************************************
# il attend 300 secondes (5 minutes)
watchdog-device = /dev/watchdog
file = /var/log/calendar.log
change = 300
Cette configuration va faire en sorte que le watchdog va rebooter la machine s'il ne détecte pas de mise à jour du fichier /var/log/calendar.log pendant 300 secondes (5 minutes).
Attention : en cas d’arrêt manuel du script python, la Raspberry rebootera également !
Il faut que notre programme puisse écrire dans le fichier de log en ayant les bon droits. Nous allons donc créer un fichier vide et lui donner les droits pour que l'utilisateur pi puisse écrire de dans.
sudo touch /var/log/calendar.log
sudo chown pi.pi /var/log/calendar.log
sudo crontab -e
et en fin de fichier, rajouter la ligne :
@reboot /etc/python3 /home/pi/calendar2/bluetoothDevicesCheck.py
Relancer le service du watchdog :
sudo service watchdog restart