我有两个 systemd 服务文件。我想gw_web.service
在之后开始gw_log.service
。
这是两个服务文件:
gw_log.service
:
[Unit]
Description=myGarage Log Service
After=multi-user.target
[Service]
Type=idle
User=pi
Restart=always
RestartSec=1
ExecStartPre=-/usr/bin/rm /home/pi/myprojects/myGarage/gw_log.service.log
ExecStart=/usr/bin/python3 -u /home/pi/myprojects/myGarage/gw_log.py
StandardOutput=file:/home/pi/myprojects/myGarage/gw_log.service.log
[Install]
WantedBy=multi-user.target
gw_web.service
:
[Unit]
Description=myGarage Web Service
Requires=gw_log.service
After=gw_log.service
[Service]
Type=idle
User=pi
Restart=always
RestartSec=1
ExecStartPre=-/usr/bin/rm /home/pi/myprojects/myGarage/gw_web.service.log
ExecStart=/usr/bin/python3 -u /home/pi/myprojects/myGarage/gw_web.py
StandardOutput=file:/home/pi/myprojects/myGarage/gw_web.service.log
[Install]
WantedBy=multi-user.target
当我重新启动服务器时,仅gw_log.service
处于活动状态。gw_web.service
死了。如果我systemctl start gw_web
那么一切正常。但它在启动时不起作用。
我已经禁用并重新启用了这些服务 - 没有什么乐趣。我究竟做错了什么?
更新:gw_web.service 无法启动,因为 gw_web.service/start 和 multi-user.target/start 上存在订购周期。我通过添加DefaultDependencies=no
到 Unit 部分解决了这个问题gw_web.service