以与启动不同的顺序停止 systemd 单元

以与启动不同的顺序停止 systemd 单元

如何定义两个 systemd 单元,使得它们的停止顺序与启动顺序不同?

出于性能问题,我让单元 A 和 B 同时启动(它们都在 systemd 套接字之后启动),但单元 A 不能在单元 B 之前停止

答案1

不是。如果 B 包含After=A,则 A 先开始,B 先停止。

服务管理器在启动 A 时等待什么取决于类型。参考systemd.service 手册。具体来说,simple甚至不等待 exec(),而是forking等待父进程退出。

如果你追求的是性能,那么自然有多种竞争工具可用于对单元的启动进行计时,systemd-analyze 和 bootchart. 确定您可以容忍的最大启动时间,然后测量它实际需要多长时间。

为了进一步改进,请详细分析此事并查看其代码。

相关内容