служба systemd не запускается при загрузке, запускается при перезапуске - PullRequest
0 голосов
/ 31 марта 2020

Я создал этот служебный файл для запуска сценария python при загрузке моего raspberry pi (4):

/etc/systemd/system/plants.service

[Unit]                                    
Description=plant-sender                                    
After=network.target                                    

[Service]
Type=simple                                    
User=root                                    
Group=root                                    
WorkingDirectory=/home/theo/Repos/plants-monitor/remote                                    
ExecStart=/usr/bin/python main.py                                    
Restart=on-failure                                    

[Install]                                    
WantedBy=multi-user.target

Однако, как только pi я запускаю sudo systemctl status plants и получаю:

* plants.service - plant-sender
     Loaded: loaded (/etc/systemd/system/plants.service; enabled; vendor preset: disabled)
     Active: failed (Result: exit-code) since Mon 2020-03-30 20:22:43 EDT; 1min 45s ago
    Process: 323 ExecStart=/usr/bin/python main.py (code=exited, status=1/FAILURE)
   Main PID: 323 (code=exited, status=1/FAILURE)

Mar 30 20:22:43 arpi systemd[1]: plants.service: Scheduled restart job, restart counter is at 5.
Mar 30 20:22:43 arpi systemd[1]: Stopped plant-sender.
Mar 30 20:22:43 arpi systemd[1]: plants.service: Start request repeated too quickly.
Mar 30 20:22:43 arpi systemd[1]: plants.service: Failed with result 'exit-code'.
Mar 30 20:22:43 arpi systemd[1]: Failed to start plant-sender.

Но после запуска sudo systemctl restart plants служба запускается и все в порядке.

1 Ответ

0 голосов
/ 31 марта 2020

Если он не запускается при загрузке, но делает на systemctl restart, я бы посмотрел, установлено ли /home/theo/Repos/plants-monitor/remote в этой точке.

Возможно, что-то есть автоматическое монтирование или домашний монтаж вашего домашнего каталога при входе в систему.

Если это так, вы можете изменить рабочий каталог на нечто, существующее всегда, даже если это только тест.

Дополнительно, используя journalctl -n 9999 -u plants даст вам больше сообщений в журнале, поэтому вы сможете увидеть , почему не работает, вместо того, чтобы просто увидеть сообщения «слишком много раз пытались отказаться».

...