(系统版本 229)
我有一个主服务 A,一个辅助服务 B。主 A 可以自己运行。但是服务 B 无法自行正确运行:它需要 A 运行(技术上 B可以运行,但这是我想要systemd
阻止的)。我的目标:如果 A 没有运行, B 不应该运行。鉴于 A 和 B 正在运行,当 A 停止或死亡/崩溃时,应该停止 B。
我如何实现这一目标?
我通过将 [Unit] 项目添加到 b.service 来接近,使用
Requisite=A.service
After=A.service
上面的结果是
- 除非 A 正在运行(好),否则 B 不会启动。
- 当 A 停止时 B 停止(良好)。
- 但是,如果我杀死 A,服务 B 会继续运行(坏)。
我该如何解决最后一个行为?似乎也PartOf
没有BindsTo
办法,但也许我没有正确的选项组合咒语?从手册页中我不清楚可以组合哪些选项。
systemd.unit 手册页:https ://www.freedesktop.org/software/systemd/man/systemd.unit.html 相关:Systemctl 依赖失败,停止依赖服务