systemd服务未在启动时启动,在重新启动时启动

时间:2020-03-31 00:33:29

标签: service raspberry-pi systemd raspberry-pi4

当我的树莓派(4)启动时,我已经制作了此服务文件以启动python脚本:

/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 :(得分:0)

如果它不是在启动时启动,而在systemctl restart上启动了 ,那么我将查看此时是否安装了/home/theo/Repos/plants-monitor/remote

登录时,可能会有自动挂载或主目录挂载的内容。

如果是这样,您可以将工作目录更改为始终存在的目录,即使只是测试也是如此。

另外,使用journalctl -n 9999 -u plants将为您提供更多日志消息,因此您可以看到为什么失败,而不仅仅是看到“尝试了太多次,放弃了”消息。 / p>