对 systemd 服务进行分组

对 systemd 服务进行分组

.service我已经为构成我正在开发的系统的不同部分编写了大约六个文件。能够逐步启动整个系统很有用,但我也希望有一个单元可以通过一次调用来启动整个系统systemctl

最好的方法是什么?

答案1

你想要一个目标型单位,所有服务单元都列为Wants=依赖项。然后你使用 启动它systemctl start unitname.target。 (请确保不要在此处使用systemctl isolate;这将关闭除服务依赖关系树中的内容之外的所有内容,而您可能不想要这些内容。)

答案2

你有没有尝试过使用PartOfWants除了目标之外,还针对目标群体的子单位?例如:PartOf=foo.targetfoo-sub1.serviceWants=foo-sub1.service foo-sub2.service在 中foo.target。我刚刚尝试过这个,并且只需启动和停止目标就能够启动和停止我的所有子单元。

部分=

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

当在 a.service 上使用 PartOf=b.service 时,此依赖关系将在 b.service 的属性列表中显示为 ConsistsOf=a.service。 ConsistsOf= 不能直接指定依赖关系。

相关内容