web-dev-qa-db-fra.com

erreur systemd "status = 203 / EXEC" lors de la création d'un nouveau service

J'ai créé un nouveau service pour un script Python qui fonctionne lors de l'exécution autonome mais donne des erreurs ci-dessous lors de l'exécution via systemd:

Oct 02 12:17:09 raspberrypi systemd[1]: Started Read pressure And Post to mqtt.
Oct 02 12:17:09 raspberrypi systemd[1]: ReadPressure.service: Main process exited, code=exited, status=203/EXEC
Oct 02 12:17:09 raspberrypi systemd[1]: ReadPressure.service: Unit entered failed state.
Oct 02 12:17:09 raspberrypi systemd[1]: ReadPressure.service: Failed with result 'exit-code'.
Oct 02 12:17:09 raspberrypi systemd[1]: ReadPressure.service: Service hold-off time over, scheduling restart.
Oct 02 12:17:09 raspberrypi systemd[1]: Stopped Read pressure And Post to mqtt.
Oct 02 12:17:09 raspberrypi systemd[1]: ReadPressure.service: Start request repeated too quickly.
Oct 02 12:17:09 raspberrypi systemd[1]: Failed to start Read pressure And Post to mqtt.
Oct 02 12:17:09 raspberrypi systemd[1]: ReadPressure.service: Unit entered failed state.
Oct 02 12:17:09 raspberrypi systemd[1]: ReadPressure.service: Failed with result 'exit-code'.

Le service a été créé dans "etc/systemd/system/ReadPressure.service. Il dispose de droits exécutables.

Les services ressemblent à:

[Unit]
Description=ReadPressure

[Service]
ExecStart=/bin/bash -c 'python3 -u /home/pi/ReadPressure/ReadPressure2AndPostToMqtt.py'
WorkingDirectory=/home/pi/ReadPressure/
Restart=always
User=pi

[Install]
WantedBy=multi-user.target

Des idées pourquoi je reçois les erreurs? Le système d'exploitation est Raspbian.

Merci

5
resolver101

Essayer

pi@raspberrypi:~ $ systemctl status ReadPressure.service

Paraphraser @Ingo de je n'arrive pas à démarrer un programme python dans Thonny au démarrage

Le message d'erreur (code = exit, status = 203/EXEC) apparaît souvent lorsque le script lui-même ou son interpréteur ne peut pas être exécuté.

Cela pourrait avoir ces raisons:

  • mauvais chemin vers le script (par exemple /home/py/ReadPressure2AndPostToMqtt.py)

  • script non exécutable

  • pas de Shebang (première ligne)

  • mauvais chemin dans Shebang (par exemple/bin/python3)

  • les fichiers internes de votre script peuvent ne pas avoir les autorisations d'accès.

7
Gerard Gilliland

Vous devrez peut-être citer votre commande, par exemple:

ExecStart="/bin/bash -c 'python3 bla blah'"
0
Anne Bennett