Linux节能需据需求选suspend或hibernate:前者快恢复但断电丢数据,后者断电不丢但慢;hybrid-sleep兼顾二者;均需先确认/sys/power/state支持状态,并按步骤配置swap、GRUB参数及systemd服务。

如果您希望在Linux系统中实现节能目的,需根据实际需求选择 suspend(挂起到内存)或 hibernate(休眠到磁盘)模式。两种模式在功耗、恢复速度与数据持久性上存在本质差异,配置方式也各不相同。以下是具体操作步骤:
一、确认系统支持的休眠类型
内核通过 /sys/power/state 文件暴露当前可用的电源状态,该文件内容直接反映硬件与内核配置是否就绪。若未启用相应功能,部分模式将不可见。
1、打开终端,执行命令:cat /sys/power/state
2、检查输出是否包含 mem(对应 suspend)、disk(对应 hibernate)或 freeze 等关键词。
3、若输出仅含 freeze 或为空,说明未启用 ACPI 休眠支持或 swap 分区未配置(hibernate 必需)。
二、配置 suspend(挂起到内存)
suspend 模式无需额外存储介质,仅依赖内存供电维持状态,因此恢复极快且无需预设 swap。它适用于短时离席、需快速恢复的场景。
1、直接执行命令触发:sudo systemctl suspend
2、等效传统命令也可使用:sudo pm-suspend
3、如需通过 rtcwake 定时唤醒,可执行:sudo rtcwake -m mem -s 3600(表示 1 小时后唤醒)
三、配置 hibernate(休眠到磁盘)
hibernate 要求系统将内存镜像写入交换空间(swap),因此必须确保 swap 分区或 swap 文件已启用且容量 ≥ 物理内存大小。否则休眠将失败或导致数据丢失。
1、检查 swap 状态:swapon --show 或 free -h
2、若无 swap,创建 swap 文件(以 8GB 为例):sudo fallocate -l 8G /swapfile && sudo chmod 600 /swapfile && sudo mkswap /swapfile && sudo swapon /swapfile
3、编辑 GRUB 配置,添加 resume 参数(假设 swap 分区为 /dev/sda2):sudo nano /etc/default/grub,在 GRUB_CMDLINE_LINUX_DEFAULT 行末尾追加 resume=/dev/sda2,保存后运行 sudo update-grub
4、启用 hibernate 支持:sudo systemctl hibernate
四、启用 hybrid-sleep(混合休眠)
hybrid-sleep 同时执行 suspend 与 hibernate 流程:既将状态写入 swap(保障断电安全),又保持内存供电(实现快速唤醒)。该模式适合笔记本等可能意外断电的设备。
1、验证内核是否支持:cat /sys/power/state 中应出现 disk 和 mem,且 systemd 默认启用 hybrid-sleep。
2、手动触发混合休眠:sudo systemctl hybrid-sleep
3、设置默认行为:编辑 /etc/systemd/sleep.conf,取消注释并修改为 HibernateMode=disk 与 HybridSleepMode=disk
五、设置自动休眠定时器
systemd 提供基于 timer 的自动化休眠能力,可按空闲时间或绝对时间触发,避免手动干预。
1、创建休眠服务文件:sudo nano /etc/systemd/system/auto-suspend.service,写入:
[Unit]
Description=Auto Suspend after Inactivity
[Service]
Type=oneshot
ExecStart=/usr/bin/systemctl suspend
[Install]
WantedBy=multi-user.target
2、创建对应定时器:sudo nano /etc/systemd/system/auto-suspend.timer,写入:
[Unit]
Description=Trigger auto-suspend after 30 minutes idle
[Timer]
OnIdleSec=30min
[Install]
WantedBy=timers.target
3、启用并启动定时器:sudo systemctl daemon-reload && sudo systemctl enable --now auto-suspend.timer










