12.4. 关闭、挂起和休眠系统
作为系统管理员,您可以使用不同的电源管理选项来管理功耗,执行正确的关机以确保所有数据都被保存,或者重启系统以应用更改和更新。
12.4.1. 系统关闭
要关闭系统,您可以直接使用 systemctl
工具,或者通过 shutdown
命令来调用这个工具。
使用 shutdown
有以下好处:
-
您可以使用
time
参数来计划关机。这也为用户提供了系统已计划关机的警告。 - 您可以取消关机。
其他资源
12.4.2. 计划一个系统关机
作为系统管理员,您可以计划一个延迟关闭,为用户提供时间来保存其工作并注销系统。使用 shutdown
命令执行以下操作:
- 关闭系统,并在某个时间关闭机器
- 在不关闭机器的情况下关闭和停止系统
- 取消一个待处理的关机
先决条件
- 根访问权限
流程
使用 shutdown
命令执行以下任务之一:
指定您要关闭系统并关闭机器的时间:
# shutdown --poweroff hh:mm
其中
hh:mm
是 24 小时表示法时间。为防止新的登录,在系统关闭前 5 分钟会创建/run/nologin
文件。当使用时间参数时,您可以通过指定可选的 wall message 来通知登录到计划关机的系统,如
shutdown --poweroff 13:59 "Attention。系统将于 13:59"
关闭。在延迟后关闭和停止系统,而不断电:
# shutdown --halt +m
其中
+m
是延迟时间(以分钟为单位)。您可以使用now
关键字作为+0
的别名。取消一个待处理的关机:
# shutdown -c
其他资源
-
shutdown(8)
手册页 - 使用 systemctl 命令来关闭系统
12.4.3. 使用 systemctl 命令来关闭系统
作为系统管理员,您可以关闭系统并关闭机器,或使用 systemctl
命令关闭和停止系统,而不断电。
先决条件
- 根访问权限
流程
使用 systemctl
命令执行以下任务:
关闭系统并给机器断电:
# systemctl poweroff
在不断电的情况下关闭和停止系统:
# systemctl halt
默认情况下,运行其中任何一个命令都可让 systemd
向当前登录到系统的所有用户发送一条通知性消息。要防止 systemd
发送这条消息,请使用 --no-wall
命令行选项运行所选命令。
12.4.4. 重启系统
当您重启系统时,systemd
会停止所有正在运行的程序和服务,系统关闭,然后立即启动。在以下情况下重启系统很有帮助:
- 安装新软件或更新后
- 更改系统设置后
- 排除系统问题时
先决条件
- 根访问权限
流程
重启系统:
# systemctl reboot
默认情况下,当您使用此命令时,systemd
会向当前登录到系统的所有用户发送一条通知性消息。要防止 systemd
发送这条消息,请使用 --no-wall
选项运行这个命令。
12.4.5. 通过挂起和休眠系统来优化功耗
作为系统管理员,您可以管理功耗,在系统上节省能源,并保留系统的当前状态。要做到这一点,请应用以下模式之一:
- 挂起
- 挂起会将系统状态保存在 RAM 中,但 RAM 模块除外,关闭机器中的大多数设备。当您重新打开机器时,系统会从内存中恢复其状态,而无需再次引导。由于系统状态保存在 RAM 中,而不是保存在硬盘上,因此,从挂起模式恢复系统比从休眠模式恢复要快得多。但是,暂停的系统状态也会受到断电的影响。
- 休眠
- 休眠会在硬盘上保存系统状态,并关闭机器。当您重新打开机器时,系统会从保存的数据中恢复其状态,而无需再次引导。由于系统状态保存在硬盘上,而不是保存在 RAM 中,因此机器不必保持对 RAM 模块的供电。但是,因此,从休眠模式恢复系统要比将其恢复为挂起模式恢复要慢得多。
- 混合睡眠
- 合并了休眠和挂起的元素。系统首先在硬盘上保存当前状态,并进入类似挂起的低电源状态,这使系统可以更快地恢复。混合睡眠的好处是,如果系统在睡眠状态下掉电,它仍然可以从硬盘上保存的镜像恢复之前的状态,类似于休眠。
- 挂起-然后-休眠
-
此模式首先挂起系统,这会将当前系统状态保存到 RAM,并将系统置于低电源模式。如果系统保持挂起一段时间,则系统会休眠,您可以在
HibernateDelaySec
参数中定义时间。休眠将系统状态保存到硬盘上,并完全关闭系统。挂起-然后休眠模式提供保留电池电源的好处,而您仍能够快速恢复工作。另外,这个模式可确保在出现电源故障时保存您的数据。
先决条件
- 根访问权限
流程
选择适当的节能方法:
挂起系统:
# systemctl suspend
休眠系统:
# systemctl hibernate
休眠并挂起系统:
# systemctl hybrid-sleep
挂起,然后休眠系统:
# systemctl suspend-then-hibernate
12.4.6. systemctl 的电源管理命令的概述
您可以使用以下 systemctl
命令列表来控制系统的电源管理。
systemctl 命令 | 描述 |
---|---|
| 关闭系统。 |
| 关闭系统。 |
| 重启该系统。 |
| 挂起系统。 |
| 休眠系统。 |
| 休眠并挂起系统。 |
12.4.7. 更改电源按钮行为
当按计算机上的 power 按钮时,它默认挂起或关闭系统。您可以根据您的偏好自定义此行为。
12.4.7.1. 更改 systemd 中的 power 按钮行为
当您在非图形 systemd
目标中按 power 按钮时,它默认关闭系统。您可以根据您的偏好自定义此行为。
先决条件
- 管理访问权限.
流程
-
打开
/etc/systemd/logind.conf
配置文件。 -
查找有
HandlePowerKey=poweroff
的行。 -
如果行以
#
符号开头,请将其删除以启用设置。 使用以下选项之一替换
poweroff
:poweroff
- 关闭计算机。
reboot
- 重启系统。
halt
- 发起系统停止。
kexec
-
发起
kexec
重启。 suspend
- 挂起系统。
hibernate
- 发起系统休眠。
ignore
- 什么都不做。
例如,要在按下电源按钮时重启系统,请使用这个设置:
HandlePowerKey=reboot
- 保存更改并关闭编辑器。
后续步骤
- 如果您使用图形会话,还要在 GNOME 中配置 power 按钮。请参阅 第 12.4.7.2 节 “更改 GNOME 中的 power 按钮行为”。
12.4.7.2. 更改 GNOME 中的 power 按钮行为
在图形登录屏幕或在图形用户会话中,按 power 按钮默认挂起机器。当用户物理按下 power 按钮或从远程控制台按下虚拟 power 按钮时,才会出现这种情况。您可以选择不同的 power 按钮行为。
先决条件
-
您已在
systemd
中配置了 power 按钮行为。请参阅 第 12.4.7.1 节 “更改 systemd 中的 power 按钮行为”。
流程
在
/etc/dconf/db/local.d/01-power
文件中为系统范围的设置创建一个本地数据库。输入以下内容:[org/gnome/settings-daemon/plugins/power] power-button-action='suspend'
使用以下 power 按钮操作之一替换
suspend
:nothing
- 什么都不做。
suspend
- 挂起系统。
hibernate
- 休眠系统。
interactive
显示一个弹出窗口查询,询问用户要做什么。
交互模式下,按下 power 按钮后,系统在 60 秒后自动关闭。但是,您可以从弹出查询中选择不同的行为。
可选:覆盖用户设置,并阻止用户更改它。在
/etc/dconf/db/local.d/locks/01-power
文件中输入以下配置:/org/gnome/settings-daemon/plugins/power/power-button-action
更新系统数据库:
# dconf update
- 注销并重新登录,以使系统范围的设置生效。