![如何配置 systemd 服务以预定义的顺序启动/停止进程以及启动之间的超时?](https://linux22.com/image/1542269/%E5%A6%82%E4%BD%95%E9%85%8D%E7%BD%AE%20systemd%20%E6%9C%8D%E5%8A%A1%E4%BB%A5%E9%A2%84%E5%AE%9A%E4%B9%89%E7%9A%84%E9%A1%BA%E5%BA%8F%E5%90%AF%E5%8A%A8%2F%E5%81%9C%E6%AD%A2%E8%BF%9B%E7%A8%8B%E4%BB%A5%E5%8F%8A%E5%90%AF%E5%8A%A8%E4%B9%8B%E9%97%B4%E7%9A%84%E8%B6%85%E6%97%B6%EF%BC%9F.png)
我使用 systemd 通过使用 Requires/After/Before/BindsTo 字段按顺序启动/停止 4 个服务。
systemctl start service01
发起这样的启动命令:
服务 01 -> 服务 02 -> 服务 03 -> 服务 04
停止操作是通过 service0[234] 端的 BindTo 配置的。它们与 service01 绑定,因此一旦 service01 停止,其他服务也会停止。
但由于一些问题,service02和service03启动之间应该配置5-10秒的延迟。
可以使用 systemd 来实现这个吗?
当然,我可以在 service03 中的 ExecStart 开头添加“sleep 10”,但也许还有其他方法可以使用 systemd 来实现这一点。
答案1
有计时器systemd 中的单元。OnUnitActiveSec=
如果您选择使用计时器执行任务,请尝试使用选项。