![systemd 服务启动顺序,但仅在启动时](https://linux22.com/image/227354/systemd%20%E6%9C%8D%E5%8A%A1%E5%90%AF%E5%8A%A8%E9%A1%BA%E5%BA%8F%EF%BC%8C%E4%BD%86%E4%BB%85%E5%9C%A8%E5%90%AF%E5%8A%A8%E6%97%B6.png)
我的用例与描述的非常相似在这个问题中:
许多定制服务,彼此不依赖。启动时,它们全部同时启动并导致 CPU 和 RAM 负载达到峰值。
我想要做的是为这些服务设置一个特定的启动顺序,这可能就是发明 Before/After systemd 单元选项的目的。
到目前为止,这个问题与上面链接的问题相同。
我不确定的是:
请注意,当两个具有顺序依赖性的单元被关闭时,将应用启动顺序的相反顺序。即,如果一个单元在另一个单元上配置了 After=,则如果两个单元都关闭,则前者会先于后者停止。假设两台设备之间存在任何顺序依赖性,如果一台设备关闭而另一台设备启动,则关闭顺序将先于启动顺序。在这种情况下,排序依赖项是 After= 还是 Before= 并不重要。关闭两者中的哪一个并不重要,只要关闭一个并启动另一个即可。在所有情况下,关闭都是在启动之前命令的。如果两个单元之间不存在排序依赖性,则它们会同时关闭或启动,并且不会发生排序。当某个单元已完成调用并且它们失败或报告启动成功时,这取决于单元类型。
(来源:systemd.unit 联机帮助页。)
问题是,我只需要在启动时发生任何启动顺序。
其中一些服务在主机运行时以临时方式独立启动、停止和重新启动,并且所有顺序不应影响这些操作。即,如果我想重新启动使用“之前/之后”选项订购的一项服务,我只想重新启动该特定服务,并保持所有其余服务不变。
在这个用例中,之后/之前仍然是一个好主意吗?
如果“之后”/“之前”也适用于临时启动/停止操作,那么该用例还有其他解决方案吗?