Linux 命令:将笔记本电脑/上网本置于休眠/挂起模式
您可以在Linux下使用以下控制台命令来挂起或休眠Linux系统:
- systemctl suspend命令– 使用 systemd 从 Linux 上的命令行挂起/休眠。大多数现代 Linux 发行版只需要使用 systemctl 命令。
- pm-suspend命令– 在挂起期间,大多数设备都会关闭,系统状态会保存在 RAM 中。系统在此状态下仍需要电源。大多数现代系统需要 3 到 5 秒才能进入和退出挂起状态,大多数笔记本电脑可以在电池耗尽之前保持挂起模式 1 到 3 天。
- pm-hibernate命令– 休眠期间,系统完全关闭,系统状态保存到磁盘。系统不需要电源,可以无限期地保持休眠模式。大多数现代系统需要 15 到 45 秒才能进入和退出休眠模式,内存越多,进入和退出休眠模式所需的时间就越长。
- pm-suspend-hybrid命令- 混合挂起是指系统执行休眠所需的所有操作,但挂起而不是关闭的过程。这意味着,如果您的电脑电量充足,您的电脑可以比正常休眠更快地唤醒,即使电量耗尽,您也可以恢复。
- 还提供图形工具,例如 GNOMOE 的 gnome-power-manager 和 Plasma 的电源管理模块 powerdevil。
- 用于电源管理的低级 Linux 内核接口。
上述命令(systemctl 除外)是 pm-utils 软件包的一部分。它是 RHEL、Fedora、CentOS、Red Hat Enterprise Linux、Debian、Ubuntu 和其他 Linux 发行版下的电源管理软件包。
教程详细信息 | |
---|---|
难度等级 | 简单的 |
Root 权限 | 是的 |
要求 | Linux 终端 |
类别 | 系统管理 |
操作系统兼容性 | Alma • Alpine • Arch • CentOS • Debian • Fedora • Linux • Mint • openSUSE • Pop!_OS • RHEL • Rocky • Stream • SUSE • Ubuntu |
预计阅读时间 | 7 分钟 |
Linux 命令:将笔记本电脑/上网本置于休眠/挂起模式
让我们逐步了解使 Linux 笔记本电脑进入休眠或挂起模式的所有命令。
使用命令行基于 Systemd 的方法暂停或休眠 Linux 笔记本电脑
键入以下命令:
$ systemctl suspend
示例输出:
图 01:systemctl suspend 暂停 Ubuntu Linux 笔记本电脑
$ systemctl hibernate
Linux 暂停系统命令
要暂停系统,请输入:
# pm-suspend
或者
$ sudo pm-suspend
在基于 systemd 的发行版中将其替换为
$ systemctl suspend
Linux 命令休眠系统
要使系统休眠,请输入:
# pm-hibernate
或
$ sudo pm-hibernate
或
$ systemctl hibernate
如何在一定时间后使计算机进入睡眠状态?
您可以使用以下 at 命令让笔记本电脑在 30 分钟后进入睡眠状态:
$ echo 'pm-suspend' | at now + 30 minutes
或
$ echo 'systemctl suspend' | at now + 30 minutes
当我的系统暂停时,如何添加钩子(或所谓的脚本)?
您可以将脚本放在以下目录中。它们在挂起和恢复时执行:
- /etc/pm/sleep.d – 包括 Debian 在内的几乎所有发行版都会首先在这里查看并运行脚本。
- /usr/lib/pm-utils/sleep.d – 默认 Debian 位置。
简而言之,如果您需要在暂停/恢复时运行自定义命令,则应该将自定义脚本放置到 /etc/pm/sleep.d/ 目录中。
Shell 脚本示例
#!/bin/sh # If we are running NetworkManager, tell it we are going to sleep. # TODO: Make NetworkManager smarter about how to handle sleep/resume # If we are asleep for less time than it takes for TCP to reset a # connection, and we are assigned the same IP on resume, we should # not break established connections. Apple can do this, and it is # rather nifty. . "${PM_FUNCTIONS}" suspend_nm() { # Tell NetworkManager to shut down networking dbus_send --print-reply --system \ --dest=org.freedesktop.NetworkManager \ /org/freedesktop/NetworkManager \ org.freedesktop.NetworkManager.sleep 2>&1 > /dev/null } resume_nm() { # Wake up NetworkManager and make it do a new connection dbus_send --print-reply --system \ --dest=org.freedesktop.NetworkManager \ /org/freedesktop/NetworkManager \ org.freedesktop.NetworkManager.wake 2>&1 > /dev/null } case "$1" in hibernate|suspend) suspend_nm ;; thaw|resume) resume_nm ;; *) exit $NA ;; esac
Linux 的图形电源管理工具
Linux GNOME 桌面用户可以使用 Gnome 设置应用并设置电源设置。例如,您可以启用或禁用以下省电功能:
- 启用自动亮度
- 设置屏幕消隐时间
- 设置自动暂停
- 当计算机空闲时,屏幕将会变暗,以节省电量等。
打开活动概览并开始输入 Power。单击Power打开面板:
以下是 KDE 桌面下的电源设置:
使用 Linux 内核 /sys/power/state 文件
最直接的方法是通知 Linux 内核进入暂停或支持的电源状态。不过,这同样取决于您的硬件支持。在现代 Linux 内核中,将合适的“字”写入 /sys/power/state 文件是激活此电源暂停的主要机制。
如何查看系统支持的统计数据
在sys/power/state上输入cat 命令。例如:
输出:
$ cat /sys/power/state
freeze mem
“disk”、“freeze”和“standby”设置“words”分别代表休眠、挂起到空闲状态和待机睡眠状态。因此,要进入休眠状态,您可以使用 echo 命令和 tee 命令的组合,如下所示写入 if supports:
$ echo disk | sudo tee /sys/power/state
另一个文件是 /sys/power/mem_sleep:
$ cat /sys/power/mem_sleep
输出:
s2idle [deep]
此文件中可能存在的字符串是“s2idle”、“shallow”和“deep”。字符串“s2idle”始终表示挂起到空闲状态,按照惯例,“shallow”和“deep”分别表示待机和挂起到 RAM。以下是使用 ls 命令列出所有文件的方法。在
ThinkPad 笔记本电脑的 Intel i7-9850H CPU 上运行的Linux 内核版本5.15$ ls -l /sys/power/
的输出:
total 0 -rw-r--r-- 1 root root 4096 Oct 27 11:33 disk -rw-r--r-- 1 root root 4096 Oct 27 11:33 image_size -rw-r--r-- 1 root root 4096 Oct 27 10:06 mem_sleep -rw-r--r-- 1 root root 4096 Oct 27 11:33 pm_async -rw-r--r-- 1 root root 4096 Oct 27 11:33 pm_debug_messages -rw-r--r-- 1 root root 4096 Oct 27 11:33 pm_freeze_timeout -rw-r--r-- 1 root root 4096 Oct 27 11:33 pm_print_times -rw-r--r-- 1 root root 4096 Oct 27 11:33 pm_test -rw-r--r-- 1 root root 4096 Oct 27 11:33 pm_trace -r--r--r-- 1 root root 4096 Oct 27 11:33 pm_trace_dev_match -r--r--r-- 1 root root 4096 Oct 27 11:33 pm_wakeup_irq -rw-r--r-- 1 root root 4096 Oct 27 11:33 reserved_size -rw-r--r-- 1 root root 4096 Oct 27 10:06 resume -rw-r--r-- 1 root root 4096 Oct 27 11:33 resume_offset -rw-r--r-- 1 root root 4096 Oct 27 10:06 state drwxr-xr-x 2 root root 0 Oct 27 11:33 suspend_stats -rw-r--r-- 1 root root 4096 Oct 27 11:33 sync_on_suspend -rw-r--r-- 1 root root 4096 Oct 27 11:33 wake_lock -rw-r--r-- 1 root root 4096 Oct 27 11:33 wake_unlock -rw-r--r-- 1 root root 4096 Oct 27 11:33 wakeup_count
不要使用 Linux 内核低级文件,而是使用上述命令或 GUI 工具。我建议阅读Linux 内核文档以获取有关这些文件的更多信息。
总结
Linux 电源管理随着每个 Linux 内核版本的发布而不断改进。但许多与挂起和睡眠相关的内容也依赖于硬件支持。在 Linux 中,电源管理包含两个主要部分:
- 具有 udev 规则的 Linux 内核参数和模块。
- 使用 GUI、systemd 和其他 CLI 提供的用户空间工具与内核交互。这些用户空间工具具有用户友好的选项,可根据您的需要修改设置。
除了这里讨论的 GUI 和 CLI 工具之外,您还可以使用 Linux 控制台的高级电源管理:
- Powertop 工具
- TLP – Linux 的高级电源管理。