Pour ceux qui s'en souviennent peut-être encore, il y a quelques temps je bossais sur un petit système de notification avec LED (RGB) pour savoir si j'avais un/des mail(s) à lire. Un moyen comme un autre de savoir dans toute les pièces de la maison si j'ai un mail sans avoir le téléphone sur moi ou un visuel sur mon ordinateur.
Le problème c'est que le script avait tendance à planter sans raison et aléatoirement. Je n'ai jamais su si c'était à cause de mon script, une histoire de perte de connexion avec ma clé Wifi, ou si c'était lié aux divers "maintenance" de google sur leur service.
Du coup, on m'avait suggéré de traiter les exception et d'ajuster mon script :
- LED Rouge allumée si j'ai (au moins) un mail
- LED Verte allumée si j'ai aucun mail
- LED Bleu si le script à crash
- Lancer le script au boot
- Le relancer s'il plante
- Avoir un visuel rapide pour voir s'il est toujours lancé et accessoirement depuis combien de temps
- Pouvoir tuer le processus précisément sans devoir tâtonner
Comme je sais c'est le genre de choses qui est "souvent" demandé sur le forum, je me suis dit qu'à défaut de garder ça pour moi, autant vous en faire profiter un peu au cas où ça intéresserais quelqu'un....Et entre-nous, c'est quand même plus agréable de poster/lire un mini-tutoriel, qu'une demande d'aide, n'est-ce pas ? ^^
Il s'agit tout simplement d'utiliser Supervisor.
Il vous suffit de l'installer via la commande
Code: Select all
sudo apt-get install supervisor
Code: Select all
sudo nano /etc/supervisor/supervisord.conf
Code: Select all
; Gmail Notifier
[program:Gmail_Notifier]
command= python /home/pi/Desktop/Scripts/gmail_notif.py
autostart=true
autorestart=true
[program:Gmail_Notifier]: Le nom que portera le processus. évitez les espaces et tant qu'à faire les accents histoire d'être sûr
command= python /home/pi/Desktop/Scripts/gmail_notif.py : La commande à lancer
autostart=true : il faut qu'il démarre au boot
autorestart=true : et qu'il se relance s'il plante
Sauvegardez, coupez et relancez supervisor avec les commandes qui vont bien
Code: Select all
sudo service supervisor stop
sudo service supervisor start
Code: Select all
sudo supervisorctl status
Code: Select all
pi@raspberrypi:~$ sudo supervisorctl status
Gmail_Notifier RUNNING pid 2630, uptime 0:23:49
Home_Control RUNNING pid 1070, uptime 0:25:54
Un grand merci à Nicolargo.org pour son tuto très clair et Lonefish sur le channel #RaspberryPi pour l'aide sur les recherches et la configuration.