(systemd 229版本)
我有一个主要服务A和一个次要服务B。主服务A可以单独运行,但是次要服务B无法正确地单独运行(从技术上讲,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 dependency failure, stop dependent services