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

systemd-sleep.conf 中文手册

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

名称

systemd-sleep.conf, sleep.conf.d — 休眠配置文件

大纲

/etc/systemd/sleep.conf

/etc/systemd/sleep.conf.d/*.conf

/run/systemd/sleep.conf.d/*.conf

/usr/lib/systemd/sleep.conf.d/*.conf

描述

systemd支持四种休眠模式:

suspend

休眠到内存。操作系统停止运行,如果主机失去电力 将会导致数据丢失,但是休眠和唤醒速度很快。这对应于内核的 suspend, standby, freeze 状态。

hibernate

休眠到硬盘。操作系统停止运行,即使主机失去电力 也不会导致数据丢失,但是休眠和唤醒速度很慢。这对应于内核的 hibernation 状态。

hybrid-sleep

混合休眠(同时休眠到内存和硬盘)。操作系统停止运行,如果主机一直没有失去电力,那么休眠和唤醒速度很快。如果主机失去电力,那么休眠和唤醒速度很慢,但是不会导致数据丢失。这对应于内核的 suspend-to-both 状态。

suspend-then-hibernate

两阶段休眠(先休眠到内存再休眠到硬盘)。系统首先休眠到内存,如果经过 HibernateDelaySec= 时长之后仍然没有任何操作,那么系统将会被 RTC 警报唤醒并立即休眠到硬盘。

这些配置文件中的设置,决定了systemd-sleepsystemd(1)休眠系统时,向 /sys/power/disk/sys/power/state 中写入什么字符串。参见systemd.syntax(5)以了解通用配置语法。

配置目录及其优先级

默认设置是在编译期间确定的,所以仅在确实需要修改默认设置的情况下,才需要使用配置文件。位于/etc/systemd/ 目录中的初始配置文件,仅包含了展示选项默认值的注释,目的在于方便系统管理员查看和直接修改。

如果软件包想要自定义某些默认设置,那么必须将自定义的配置文件安装到/usr/lib/systemd/*.conf.d/ 目录中。/etc/ 目录仅供系统管理员使用。系统管理员可以利用下面的逻辑来覆盖默认设置:主配置文件最先被读取,优先级也最低。所有 *.conf.d/ 中的配置文件都会覆盖主配置文件中的设置。所有 *.conf.d/ 中的配置文件(无论位于哪个目录中),统一按照文件名的字典顺序处理。当多个配置文件都设置了同一个选项的时候:(1)如果该选项仅接受一个单一值,那么仅以文件名最靠后(字典顺序)的那一个为准;(2)如果该选项可接受一个值列表,那么将会按照文件名的字典顺序将所有值列表拼接起来。为了便于排序,建议给所有 *.conf.d/ 中的配置文件都加上两位十进制数字的文件名前缀。

如果系统管理员想要屏蔽 /usr/lib/ 目录中的某个配置文件,那么最佳做法是在 /etc/ 目录中创建一个指向 /dev/null 的同名符号链接,即可彻底屏蔽 /usr/lib/ 目录中的同名文件。

选项

所有选项都位于/etc/systemd/sleep.confsleep.conf.d 中的配置文件中的"[Sleep]" 小节:

AllowSuspend=, AllowHibernation=, AllowSuspendThenHibernate=, AllowHybridSleep=

默认情况下,允许使用所有有效(内核支持、必要资源可用)的休眠模式。但是,可以使用这些选项禁用特定的休眠模式(设为"no")。

如果设置了 AllowHibernation=noAllowSuspend=no ,那么相当于隐含了 AllowSuspendThenHibernate=noAllowHybridSleep=no (因为它们都同时使用到了两种休眠模式)。不过,可以通过显式设置 AllowSuspendThenHibernate=yesAllowHybridSleep=yes 来明确开启这两种休眠模式。

SuspendMode=, HibernateMode=, HybridSleepMode=

这些选项 分别设置 在启动 systemd-suspend.service, systemd-hibernate.service, systemd-hybrid-sleep.service, systemd-suspend-then-hibernate.service 休眠动作时,写入 /sys/power/disk 中的字符串,值是一个空格分隔的字符串列表,依次尝试,直到成功。如果全部尝试失败,那么将取消休眠操作。

SuspendState=, HibernateState=, HybridSleepState=

这些选项 分别设置 在启动 systemd-suspend.service, systemd-hibernate.service, systemd-hybrid-sleep.service, systemd-suspend-then-hibernate.service 休眠动作时,写入 /sys/power/state 中的字符串,值是一个空格分隔的字符串列表,依次尝试,直到成功。如果全部尝试失败,那么将取消休眠操作。

HibernateDelaySec=

在自动休眠到硬盘前 等待多少秒无操作。仅适用于 systemd-suspend-then-hibernate.service

例子: freeze

例子: 为了利用 Linux 3.9 中新增的 "freeze" 模式,可以使用 systemctl suspend 命令,并在配置文件中做如下配置:

[Sleep]
SuspendState=freeze

参见

systemd-suspend.service(8), systemd(1),systemd.directives(7)