在我们的系统中,我们有 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
。