Jessie - lancer un script python comme un service
Posté : dim. 12 nov. 2017 17:04
J'ai des Pi2 et 3 qui échangent par FTP et SQL des infos et des fichiers grâce à des scripts python.
J'ai suivi l'aide ci dessous pour lancer mes scripts comme des services :
http://www.diegoacuna.me/how-to-run-a-s ... an-jessie/
Puis j'ai fais un magnifique crontab pour programmer tout cela...
Mon service se trouve dans : /lib/systemd/system.... Il s'appelle pymotion.service.
Mon problème est double :
- le script se lance à la racine "/" (je vois le premier fichier se créer, puis il "exit" et ferme).
Je voudrais qu'il se lance au niveau du script : (media/pi/USB/pyde motion/171106 pyde_motion.py"), car il gère des fichiers et tous les liens sont en relatifs.
- si je veux qu'il ne se lance qu'à 6h50 du matin, je suis obligé de l'empêcher de se lancer (au démarrage) ? Du coup, j'ai fait un "@reboot ... systemctl stop", mais je ne trouve pas cela très propre...
Un peu tordu comme besoin, non ? Et pourtant si évident si on gère des fichiers...
J'ai suivi l'aide ci dessous pour lancer mes scripts comme des services :
http://www.diegoacuna.me/how-to-run-a-s ... an-jessie/
Puis j'ai fais un magnifique crontab pour programmer tout cela...
Mon service se trouve dans : /lib/systemd/system.... Il s'appelle pymotion.service.
Mon problème est double :
- le script se lance à la racine "/" (je vois le premier fichier se créer, puis il "exit" et ferme).
Je voudrais qu'il se lance au niveau du script : (media/pi/USB/pyde motion/171106 pyde_motion.py"), car il gère des fichiers et tous les liens sont en relatifs.
- si je veux qu'il ne se lance qu'à 6h50 du matin, je suis obligé de l'empêcher de se lancer (au démarrage) ? Du coup, j'ai fait un "@reboot ... systemctl stop", mais je ne trouve pas cela très propre...
Code : Tout sélectionner
[Unit]
Description=PyDemon Motion ALPR
After=multi-user.target
[Service]
Type=simple
ExecStart=/usr/bin/python "/media/pi/USB/pyde motion/171106 pyde_motion.py"
RootDirectory="/media/pi/USB/pyde motion" # this command doesn't work !!!!!!!!!!!!!!!!!!!!?
WorkingDirectory="/media/pi/USB/pyde motion" # this command doesn't work !!!!!!!!!!!!!!!!!!!!?
Restart=on-abort
[Install]
WantedBy=mutli-user.target
Code: Select all
Code : Tout sélectionner
# crontab to specify when to run the script as a service
@reboot sudo systemctl stop pymotion.service
50 6 * * * sudo systemctl start pymotion.service
45 16 * * * sudo systemctl stop pymotion.service