systemd-halt.service 中文手册

译者:金步国


版权声明

本文译者是一位开源理念的坚定支持者,所以本文虽然不是软件,但是遵照开源的精神发布。

其他作品

本文译者十分愿意与他人分享劳动成果,如果你对我的其他翻译作品或者技术文章有兴趣,可以在如下位置查看现有的作品集:

联系方式

由于译者水平有限,因此不能保证译文内容准确无误。如果你发现了译文中的错误(哪怕是错别字也好),请来信指出,任何提高译文质量的建议我都将虚心接纳。


手册索引 · 指令索引systemd-241

名称

systemd-halt.service, systemd-poweroff.service, systemd-reboot.service, systemd-kexec.service, systemd-shutdown — 系统关闭逻辑

大纲

systemd-halt.service

systemd-poweroff.service

systemd-reboot.service

systemd-kexec.service

/usr/lib/systemd/systemd-shutdown

/usr/lib/systemd/system-shutdown/

描述

systemd-halt.service 是一个 包含在 halt.target 中的系统服务, 负责执行实际的关机动作。类似的, systemd-poweroff.service 包含在 poweroff.target 中、 systemd-reboot.service 包含在 reboot.target 中、 systemd-kexec.service 包含在 kexec.target 中, 分别负责执行对应的实际操作。

这些服务在运行时会确保 PID=1 的进程 已经被负责实际关机动作的 /usr/lib/systemd/systemd-shutdown 工具所替换。 在关机前, 此工具将会卸载所有文件系统、 卸载交换设备、卸载所有存储设备、 杀死所有进程。

将关机动作交给一个单独的二进制程序是必要的, 否则系统更新之后的重启动作可能会失败, 因为运行中的 PID=1 进程可能仍然依赖于已经消失的库文件, 这将会导致文件系统处于忙碌状态, 从而无法重新挂载为只读模式。

在实际执行 halt/poweroff/reboot/kexec 动作之前, systemd-shutdown 将会运行 /usr/lib/systemd/system-shutdown/ 目录中的所有可执行文件, 并根据所要执行的动作,向这些可执行文件传递 "halt", "poweroff", "reboot", "kexec" 参数。 目录中的所有可执行文件都以并行的方式被同时调用, 并仅在所有这些可执行文件退出之后, systemd-shutdown 才会真正实际执行 halt/poweroff/reboot/kexec 动作。

注意,千万不要直接执行 systemd-halt.service 及其相关单元。 而是应该使用例如 "systemctl halt" 这样的命令来关机。

参见

systemd(1), systemctl(1), systemd.special(7), reboot(2), systemd-suspend.service(8), bootup(7)