如何使 systemd 在重新启动慢速服务时保持“之后”依赖关系

如何使 systemd 在重新启动慢速服务时保持“之后”依赖关系

在我们的系统中,我们有 2 个依赖项,例如 A 和 B,其中 A 对 B 有“之后”依赖项。

在某些情况下,我们希望立即重新启动这两个服务。问题是 B 会优雅地停止,因此需要很长时间。 A先完成停止,并立即重新启动,因为它对B的依赖性得到了满足。然后 B 在 A 之后重新启动,而不是相反。

我们想要的行为是 A 在 B 完成停止并重新启动之前不会重新启动。

是否有一个 systemd 设置可以解决这个问题? BindsTo 是否提供了我们想要的行为?

答案1

如果每次重新启动时B您都想A重新启动,那么您可以使用BindsTo=B+After=B服务中的指令A。或者,对于更“脏”但可能不太依赖 systemd 的方法,您可以A使用以下命令添加服务的重新启动命令ExecStartPost=B的单元文件下的指令。

这将确保每次B启动(或重新启动)服务时,它也会强制重新启动服务A

相关内容