我如何预测 systemd 的关闭顺序?

我如何预测 systemd 的关闭顺序?

有没有办法systemd告诉我粗糙的当我彻底关闭整个系统时,它将按什么顺序关闭服务?由于systemd将同时关闭所有服务,我知道没有办法知道确切的顺序,但知道systemd对关闭顺序有什么限制仍然非常有帮助,最好是以某种易于理解的可视化方式。

这样做的动机是,对于服务文件的开发和调试来说,获得这个文件会方便得多预料到的列表,而不是每次我想要确定对服务单元文件或 systemd 配置的其他方面所做的更改会对关机顺序产生什么影响时,都必须真正关机,然后重新启动并检查日志。

我希望

systemctl list-dependencies --before shutdown.service

可以完成这项工作,但它只会发出:

shutdown.service

答案1

也许陈述显而易见的事情会降低学习效果,但正如原始帖子中所要求的那样,为了获得 shutdown-target 的完整反向依赖列表,我所做的就是:

systemctl list-dependencies --after shutdown.target

OT:我遇到了一个问题,kubernetes 系统的关闭会挂起(机器变得无响应并且不会关闭),因为在实际服务完成关闭之前 nfs 挂载就被终止了。这个问题帮助我取得了进步。

答案2

以下内容可能对您有帮助:

systemctl list-dependencies --before shutdown.target

问候,

答案3

关机顺序通常与开机顺序相反。

也就是说,守护进程都会收到关闭信号,并且实际关闭和退出所需的时间会有所不同。

如果只使用普通的 systemd,我认为预测哪些服务将以何种顺序退出是不切实际的。此外,依赖项将控制某些顺序。

相关内容