我有两个连续运行的服务 A 和 B,我为它们使用systemd
服务单元。在特定时间应该运行服务 C,我可以使用计时器和同名服务来执行此操作。 C 很快就完成了。当C运行时,A和B不应运行。为了确保这一点,我在 C 的服务文件中使用了该Conflicts=
选项,该网页对此进行了解释:系统文档。但这个选项只能停止A和B。当C完成后,我怎样才能再次启动A和B呢?我可以使用 来做到这一点systemd
吗?
注意:调用systemctl start A.service
andsystemctl start B.service
不是我正在寻找的解决方案。
答案1
我建议使用:
执行停止后=/usr/bin/systemctl start A.service B.service
服务停止后执行的附加命令
使用ExecStopPost
notExecStop
很重要,因为ExecStop
运行时服务仍被视为已启动,因此冲突仍然适用。