J'ai un script Python contenant une boucle comme ceci:Créer un service pour un script Python
while True:
if p.poll(waitTime):
if j.process() == journal.APPEND:
for entry in j:
process_data(entry))
Actuellement, mon regard de service comme celui-ci:
[Unit]
Description=Journald shipper
Requires=systemd-journald.service
After=systemd-journald.service
[Service]
Type=forking
ExecStart=/usr/bin/myScript.py
[Install]
WantedBy=multi-user.target
Le problème que j'ai actuellement est le La commande «start» renvoie un timeout. C'est logique parce que le script est jamais terminé, mais le service ne démarre jamais :(
Donc, je suppose que je fais des choses mauvaises. Dois-je modifier le fichier .service
pour permettre l'exécution du script sans attendre sa fin ou dois-je modifier ma boucle «infini»?
Et comment puis-je faire cela?
'si p.poll (waitTime):' est incorrect. Il est supposé vérifier si le script est terminé, mais échoue si le script échoue avec un code de retour nul. Faites 'si p.poll (waitTime) n'est pas None:' à la place. –