Проблемы с использованием Systemd для запуска скрипта Python (code = exited, status = 2 / INVALIDARGUMENT) - PullRequest
0 голосов
/ 15 апреля 2019

В настоящее время я пытаюсь запустить программу, когда Raspberry Pi 3 я использую ботинки. Программа управляет дроном, и перед запуском потребуется сетевое соединение. Когда я пытаюсь использовать Systemd для запуска этой программы, я получаю это сообщение об ошибке;

droneStartup.service - The Drone Startup service.
   Loaded: loaded (/etc/systemd/system/droneStartup.service; disabled; vendor preset: enabled)
   Active: failed (Result: exit-code) since Mon 2019-04-15 14:06:24 EDT; 1s ago
  Process: 1895 ExecStart=/bin/bash /home/pi/Systemd_test.py (code=exited, status=2)
 Main PID: 1895 (code=exited, status=2)

Apr 15 14:06:24 pi systemd[1]: Started The Drone Startup service..
Apr 15 14:06:24 pi bash[1895]: from: can't read /var/mail/time
Apr 15 14:06:24 pi bash[1895]: /home/pi/Systemd_test.py: line 4: syntax error near unexpected token `'Looping...''
Apr 15 14:06:24 pi bash[1895]: /home/pi/Systemd_test.py: line 4: `    print('Looping...')'
Apr 15 14:06:24 pi systemd[1]: droneStartup.service: Main process exited, code=exited, status=2/INVALIDARGUMENT
Apr 15 14:06:24 pi systemd[1]: droneStartup.service: Unit entered failed state.
Apr 15 14:06:24 pi systemd[1]: droneStartup.service: Failed with result 'exit-code'.

Это программа-заполнитель, которую я использую для проверки запуска;

from time import sleep

while True :
    print('Looping...')
    sleep(1)

И это файл .service, который я использую;

[Unit]
Description=The Drone Startup service.
Wants=network-online.target
After=network-online.target

[Service]
ExecStart=/bin/bash /home/pi/Systemd_test.py

[Install]
WantedBy=multi-user.target

Я не знаю, почему возникает синтаксическая ошибка, и буду очень признателен за любую помощь в этом вопросе.

1 Ответ

0 голосов
/ 15 апреля 2019

Вы пытаетесь запустить файл py с bash exec.

Необходимо прочитать:

ExecStart=/usr/bin/python /home/pi/Systemd_test.py

Предполагая , что ваша библиотека Python находится на /usr/bin/python

...