Lancer un script python3 en service

cette procédure est réalisée sous ubuntu 20.04, ca doit fonctionner sous Debian 10 modulo quelques syntaxes qui peuvent varier (non testé). Cette procédure peut être utilisée dans le cas ou on souhaite faire re-démarrer automatiquement un script python3 en cas de crash ou simplement démarrer un script à l’allumage d’un serveur. En cas de reboot le script va démarrer automatiquement en tant que service géré par systemd.

Je pars du principe que vous êtes en root.

On démarrer par créer un fichier de service

nano /etc/systemd/system/monservice.service

Puis on ajoute les options, c’est relativement explicite, je précise juste pour le Environment=PYTHONUNBUFFERED=1 à non null va permettre de forcer le stdout and stderr à sortir directement vers le fichier log donné.

[Unit]
Description=Python Binance Trade service
After=multi-user.target

[Service]
Type=simple
Restart=always
RestartSec=30
ExecStart=/usr/bin/python3 /home/laintimes.com/projet/testsyntaxe.py
StandardOutput=append:/home/laintimes.com/projet/nohup.out
Environment="PYTHONPATH=$PYTHONPATH:/home/laintimes.com/.local/lib/python3.7/site-packages"
User=laintimes.com
Environment=PYTHONUNBUFFERED=1

[Install]
WantedBy=multi-user.target

En fin de configuration on recharge les service, on active au boot et on démarre le service

systemctl daemon-reload
systemctl enable monservice.service
systemctl start monservice.service

Après cela tout se gère comme un service classique.

Laisser un commentaire