systemd 控制服务的启动顺序

systemd 控制服务的启动顺序

我有两个 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

相关内容