systemd-suspend.service 中文手册

译者:金步国


版权声明

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

其他作品

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

联系方式

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


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

名称

systemd-suspend.service, systemd-hibernate.service, systemd-hybrid-sleep.service, systemd-suspend-then-hibernate.service, systemd-sleep — 系统休眠逻辑

大纲

systemd-suspend.service

systemd-hibernate.service

systemd-hybrid-sleep.service

systemd-suspend-then-hibernate.service

/usr/lib/systemd/system-sleep

描述

systemd-suspend.service 是一个被 suspend.target 引用的系统服务, 用于执行实际的休眠到内存操作。 systemd-hibernate.service 是一个被 hibernate.target 引用的系统服务, 用于执行实际的休眠到硬盘操作。 systemd-hybrid-sleep.service 是一个被 hybrid-sleep.targetsuspend-then-hibernate.target 引用的系统服务, 用于执行实际的混合休眠(既到内存又到硬盘)操作、 递进休眠(先休眠到内存超时后再休眠到硬盘)操作。

在实际执行休眠动作之前, systemd-suspend.service(或其他对应的服务) 将会运行 /usr/lib/systemd/system-sleep/ 目录中的所有可执行文件, 并向这些可执行文件传递两个参数。第一个参数是 "pre" 、第二个参数根据所要执行的动作是 "suspend", "hibernate", "hybrid-sleep", "suspend-then-hibernate" 之一。 在从休眠状态恢复之前,systemd-suspend.service(或其他对应的服务) 同样会运行这些可执行文件,并将第一个参数改为 "post" 之后传递过去。目录中的所有可执行文件都以并行的方式被同时调用, 并仅在所有这些可执行文件退出之后, 才会真正实际执行休眠动作。

注意, /usr/lib/systemd/system-sleep/ 中的可执行文件 仅供这里列出的休眠服务使用,并且应该被视为一种 hack 技巧。 如果应用程序想要响应系统的休眠与恢复通知, 那么应该使用 Inhibitor interface

注意,千万不要直接执行 systemd-suspend.service, systemd-hibernate.service, systemd-hybrid-sleep.service, systemd-suspend-then-hibernate.service 单元。而是应该使用例如 "systemctl suspend" 这样的命令来触发休眠。

从内部看,这些服务将一个类似 "mem" 这样的字符串写入 /sys/power/state 中, 以触发实际的系统休眠动作。 究竟写入什么样的字符串取决于 /etc/systemd/sleep.confsleep.conf.d 中的配置文件的 "[Sleep]" 小节的设置。 详见 systemd-sleep.conf(5) 手册。

选项

systemd-sleep 能够识别的 命令行选项如下:

-h, --help

显示简短的帮助信息并退出。

--version

显示简短的版本信息并退出。

suspend, hibernate, hybrid-sleep, suspend-then-hibernate

休眠到内存、休眠到硬盘、混合休眠(同时休眠到内存和硬盘)、 递进休眠(先休眠到内存超时后再休眠到硬盘)

参见

systemd-sleep.conf(5), systemd(1), systemctl(1), systemd.special(7), systemd-halt.service(8)