这是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已实现。