Я написал программу (называемую виски), которую теперь хочу запустить при загрузке машины (Raspberry Pi, с помощью которой я создаю автономную лодку). Итак, я создал файл /lib/systemd/system/whisky.service
:
[Unit]
Description=Whisky Boat Program
After=network.target
StartLimitIntervalSec=0
[Service]
ExecStart=/home/pi/whisky/run
KillMode=process
IgnoreSIGPIPE=true
Restart=always
RestartSec=3
User=root
Type=simple
[Install]
WantedBy=multi-user.target
Я проверил, правильно ли отформатирован файл для systemd, используя systemd-analyze verify whisky.service
.
Когда я сейчас запускаю sudo systemctl start whisky
, я не получаю вывод ( не предлагая ошибок).
sudo systemctl status whisky
дает мне следующий вывод:
* whisky.service - Whisky Boat Program
Loaded: loaded (/lib/systemd/system/whisky.service; enabled; vendor preset: enabled)
Active: activating (auto-restart) (Result: exit-code) since Fri 2020-03-20 15:03:35 CET; 792ms ago
Process: 8621 ExecStart=/home/pi/whisky/run (code=exited, status=203/EXEC)
Main PID: 8621 (code=exited, status=203/EXEC)
Mar 20 15:03:35 raspberrypi systemd[1]: whisky.service: Unit entered failed state.
Mar 20 15:03:35 raspberrypi systemd[1]: whisky.service: Failed with result 'exit-code'.
Файл /home/pi/whisky/run
на самом деле является bash сценарием, который, в свою очередь, запускает программу. Чтобы проверить, запускает ли systemd этот сценарий bash, я добавил в него первую строку: mkdir /home/pi/RUNNING_FROM_SYSTEMD
. Каталог RUNNING_FROM_SYSTEMD
не создан, поэтому, похоже, systemd даже не пытается запустить файл /home/pi/whisky/run
.
Кто-нибудь знает, что я здесь не так делаю?