Tu pourrais créer un service ==>
Étape 1 – Votre script Python
Mon exemple de script a été stocké dans le répertoire /home/pi et nommé « pgBME2280.py ». Évidemment, votre script peut être appelé autrement, mais gardez un œil sur l’endroit où il est référencé dans les commandes et le texte ci-dessous.
Étape 2 – Créer un fichier d’unité
Ensuite, nous allons créer un fichier de configuration (alias un fichier d’unité) qui indique à systemd ce que nous voulons qu’il fasse et quand :
sudo nano /lib/systemd/system/pgBME280.service
Ajoutez dans le texte suivant :
/* *** */
[Unit]
Description=My Script Service
After=multi-user.target
[Service]
User=pi
Group=i2c
Type=idle
ExecStartPre=/bin/sleep 10
ExecStart=/bin/bash -c ‹ source /home/pi/Mesure/venv/bin/activate && python /home/pi/Mesure/pgBME280.py ›
WorkingDirectory=/home/pi/Mesure
restart=always
restartSec=5
[Install]
[Install]
WantedBy=multi-user.target
/* *** */
Vous pouvez enregistrer et quitter l’éditeur nano en utilisant [CTRL-X], [Y] ensuite [ENTER].
Cela définit un nouveau service appelé « My Script Service » et nous demandons qu’il soit lancé une fois que l’environnement multi-utilisateurs sera disponible.
Le paramètre « ExecStart » est utilisé pour spécifier la commande que nous voulons exécuter.
Le « Type » est défini sur « inactif » afin de garantir que la commande ExecStart n’est exécutée que lorsque tout le reste a été chargé.
Pour mes scripts basés sur GPIO, le type par défaut de « simple » ne fonctionnait pas.
Notez que les chemins sont absolus et définissent entièrement l’emplacement de Python ainsi que l’emplacement de notre script Python.
Afin de stocker la sortie texte du script dans un fichier journal, vous pouvez modifier la ligne ExecStart en :
/* *** /
ExecStart=/usr/bin/python /home/pi/Mesure/pgBME280.py > /home/pi/Mesure/pgBME280.log 2>&1
/ *** */
L’autorisation sur le fichier d’unité doit être définie sur 644 :
/* *** /
sudo chmod 644 /lib/systemd/system/pgBME280.service
/ *** */
Étape 3 – Configurer systemd
Maintenant que le fichier unité a été défini, nous pouvons dire à systemd de le démarrer pendant la séquence de démarrage :
/* *** /
sudo systemctl daemon-reload
sudo systemctl enable pgBME280.service
/ *** */
Redémarrez le Pi et votre service personnalisé devrait s’exécuter :
/* *** /
sudo reboot
/ *** */
Étape 4 – Vérifiez l’état de votre service
Vous pouvez vérifier l’état de votre service en utilisant :
/* *** /
sudo systemctl status pgBME280.service
/ *** /
pour supprilmer le service
/ *** */
sudo systemctl stop pgBME280.service
sudo systemctl disable pgBME280.service
sudo rm /etc/systemd/system/pgBME280.service
sudo rm /etc/systemd/system/pgBME280.service # and symlinks that might be related
sudo rm /usr/lib/systemd/system/pgBME280.service
sudo rm /usr/lib/systemd/system/pgBME280.service # and symlinks that might be related
systemctl daemon-reload
systemctl reset-failed