systemd 服务启动顺序,但仅在启动时

systemd 服务启动顺序,但仅在启动时

我的用例与描述的非常相似在这个问题中:

许多定制服务,彼此不依赖。启动时,它们全部同时启动并导致 CPU 和 RAM 负载达到峰值。

我想要做的是为这些服务设置一个特定的启动顺序,这可能就是发明 Before/After systemd 单元选项的目的。

到目前为止,这个问题与上面链接的问题相同。

我不确定的是:

请注意,当两个具有顺序依赖性的单元被关闭时,将应用启动顺序的相反顺序。即,如果一个单元在另一个单元上配置了 After=,则如果两个单元都关闭,则前者会先于后者停止。假设两台设备之间存在任何顺序依赖性,如果一台设备关闭而另一台设备启动,则关闭顺序将先于启动顺序。在这种情况下,排序依赖项是 After= 还是 Before= 并不重要。关闭两者中的哪一个并不重要,只要关闭一个并启动另一个即可。在所有情况下,关闭都是在启动之前命令的。如果两个单元之间不存在排序依赖性,则它们会同时关闭或启动,并且不会发生排序。当某个单元已完成调用并且它们失败或报告启动成功时,这取决于单元类型。

(来源:systemd.unit 联机帮助页。)

问题是,我只需要在启动时发生任何启动顺序

其中一些服务在主机运行时以临时方式独立启动、停止和重新启动,并且所有顺序不应影响这些操作。即,如果我想重新启动使用“之前/之后”选项订购的一项服务,我只想重新启动该特定服务,并保持所有其余服务不变。

在这个用例中,之后/之前仍然是一个好主意吗?

如果“之后”/“之前”也适用于临时启动/停止操作,那么该用例还有其他解决方案吗?

相关内容