如何使多个systemd服务作为一个组启动/停止?

如何使多个systemd服务作为一个组启动/停止?

Linux, 关于系统:如何创建一个启动许多其他服务的服务? ...就像容器、组或父级一样。

我有5个左右系统服务:

  • app.alpha.service
  • app.bravo.service
  • app.charlie.service
  • app.delta.service
  • app.echo.service

它们都是超级服务的一部分app,我无法成功.service为其创建文件。

我希望能够作为一个团队一起启动/停止它们。

例如:

sudo systemctl start app

我通过创建app.service这样的内容来做到这一点:

[Unit]
Description=App Service
After=network.target

[Install]
WantedBy=multi-user.target

在每个app.*.service文件中,它都app.service用以下名称命名PartOf

[Unit]
PartOf=app.service

看来这还不够,而且我还没有正确设置。我该怎么做呢?

而且,它app.service并没有真正做任何事情。它只是想成为一个逻辑容器。不确定这是否允许。

答案1

我找到了对我有用的东西。

此更改为应用程序服务使得当你开始app.service,其他的也会启动。将其他服务命名为Wants=

应用程序服务:

[Unit]
Wants=app.alpha.service
Wants=app.bravo.service
Wants=app.charlie.service
Wants=app.delta.service
Wants=app.echo.service

对个别服务的这一更改使得当您停止app.service 其他这个服务也会停止。将控制服务命名为PartOf=

应用程序.*.服务:

[Unit]
PartOf=app.service

我不喜欢必须更改两个 .service 文件,但这足以解锁我。

相关内容