Unc*_*ook 5 linux service systemd systemctl
(系统版本 229)
我有一个主服务A和一个辅助服务B。主服务A可以自行运行。但是服务 B 本身无法正确运行:它需要 A 运行(技术上 B可以运行,但这是我想要systemd阻止的)。我的目标:如果A不运行,B就不应该运行。假设 A 和 B 正在运行,当 A 停止或死机/崩溃时,B 应该停止。
我该如何实现这一目标?
我通过将 [Unit] 项目添加到 b.service 来接近,使用
Requisite=A.service
After=A.service
Run Code Online (Sandbox Code Playgroud)
上面的结果就是
我该如何解决最后这个行为?似乎PartOf都BindsTo不起作用,但也许我没有正确的选项组合咒语?从手册页中我不清楚可以组合哪些选项。
systemd.unit 手册页:https://www.freedesktop.org/software/systemd/man/systemd.unit.html 相关:Systemctl 依赖失败,停止依赖服务
为了实现您的第三个目标,请使用PartOf关键字。
[Unit]在 B.service 中,您需要在下面的部分下添加对 A 的依赖项
[Unit]
..
..
PartOf=A.service
Run Code Online (Sandbox Code Playgroud)
这样,每当 A 被杀死时,B 也将停止。