如果另一个服务启动或重新加载,Systemd Unit 服务将重新启动

Ale*_*lex 18 systemd

我想知道是否有办法在启动或重新加载(仅重新加载配置)时Systemd重新启动A.service( ),如果可能的话,无需编辑系统安装和升级的内容。AfterB.serviceB.service

A.service即使B.service未安装、禁用或停止,也应启动。

A.service

[Unit]
After = B.service network-online.target
Wants = B.service

[Service]
Type=oneshot
ExecStart = /script.sh start
ExecStop = /script.sh stop
RemainAfterExit=yes

[Install]
WantedBy = network-online.target
Run Code Online (Sandbox Code Playgroud)

B.service

[Unit]
After=syslog.target network.target

[Service]
Type=forking
ExecStart=/cmd start
ExecStop=/cmd stop
ExecReload=/cmd reload
PIDFile=/var/run/cmd.pid

[Install]
WantedBy=multi-user.target
Run Code Online (Sandbox Code Playgroud)

Thu*_*shi 18

您可以PartOf[Unit]节中使用。

例子: PartOf=B.service

从手册页,

部分=

配置类似于 Requires= 的依赖项,但仅限于停止和重新启动单元。当 systemd 停止或重新启动此处列出的单元时,操作将传播到此单元。请注意,这是一种单向依赖性 - 对此单位的更改不会影响列出的单位。

  • 现在,赏金自动分配到期,@Thushi 我感谢您的努力和建议,但`PartOf` 不是问题的解决方案,无论如何享受吧。 (2认同)