我有两个连续运行的服务 A 和 B,我使用systemd
服务单元。在应该运行服务 C 的特定时间,我可以使用计时器和具有相同名称的服务来执行此操作。C 在很短的时间内完成。当 C 运行时,A 和 B 不应运行。为确保这一点,我在 C 的服务文件中使用了该Conflicts=
选项,此网页上对此进行了解释:systemd 文档。但是这个选项只会停止 A 和 B。当 C 完成时,我如何再次启动 A 和 B?我可以这样做systemd
吗?
注意:调用systemctl start A.service
并且systemctl start B.service
不是我正在寻找的那种解决方案。
我建议使用:
ExecStopPost=/usr/bin/systemctl start A.service B.service
服务停止后执行的附加命令
使用ExecStopPost
而不是ExecStop
很重要,因为ExecStop
运行时服务仍然被考虑,所以冲突仍然适用。