当前位置: 首页 > 文档资料 > systemd 中文手册 >

systemd-halt.service 中文手册

优质
小牛编辑
138浏览
2023-12-01

名称

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)