-1

当我的树莓派(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,服务启动,一切正常。

4

1 回答 1

0

如果它没有在启动时启动但启动时启动systemctl restart,我会查看是否/home/theo/Repos/plants-monitor/remote在那时安装。

登录时可能会自动挂载或主目录挂载您的主目录。

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

此外,使用journalctl -n 9999 -u plants会给你更多的日志消息,所以你可以看到它失败的原因,而不是仅仅看到“尝试了太多次,放弃”的消息。

于 2020-03-31T00:45:05.683 回答