systemd:Requires 与 BindsTo?

Ric*_*Liu 5 systemd

我有两个服务在同一台机器上运行,A和B。A是服务器,B是客户端

  • A可以单独运行,但B必须有A运行才可以启动
  • 如果 A 崩溃、停止或重新启动,B 必须停止或重新启动
  • 如果 B 崩溃、停止或重新启动,A 不受影响并可以继续运行

在 B.service 中我应该使用Requires还是BindsTo

[Unit]
Description=service B
After=A.service
Requires=A.service
Run Code Online (Sandbox Code Playgroud)

或者

[Unit]
Description=service B
After=A.service
BindsTo=A.service
Run Code Online (Sandbox Code Playgroud)

我是否需要添加计数器部件,即RequiredByConsistsOf在 A.service 中?

小智 9

使用第二个选项(BindsTo + After)最适合您的用例。BindsTo 允许 A 停止时 B 停止,A 启动时 B 启动。当 A 尚未启动时,B 也不会启动。