systemd:b 需要 a,如果 b 停止则停止 a

systemd:b 需要 a,如果 b 停止则停止 a

这是b.service

[Unit]
Description=b.service
ConditionPathExists=/usr/sbin/b
Requires=a.service
BindsTo=a.service
After=a.service

[Service]
ExecStart=/usr/sbin/b

这几乎满足了我想要的一切:

  • 如果 b.service 启动,则 a.service 启动。
  • 如果 a.service 启动,则 b.service 启动。
  • 如果 a.service 停止,则 b.service 也停止。

我想添加剩余的依赖项:如果 b.service 停止,则 a.service 停止如果可能的话,无需修改 a.service 的服务文件

答案1

我现在又为 a.service 创建了一个覆盖/etc/systemd/system/a.service.d/override.conf其定义:

[Unit]
BindsTo=b.service

像这样,完全依赖a当且仅当b已实现。

相关内容