13.4. 关闭、挂起和休眠系统


作为系统管理员,您可以使用不同的电源管理选项来管理功耗,执行合适的 shutdown 以确保保存所有数据,或者重启系统以应用更改和更新。

13.4.1. 系统关闭

要关闭系统,您可以直接使用 systemctl 工具,或者通过 shutdown 命令来调用这个工具。

使用 shutdown 有以下优点:

  • 您可以使用 time 参数来安排一个 shutdown。这也会警告用户系统已计划 shutdown。
  • 您可以取消 shutdown。

13.4.2. 安排一个系统 shutdown

作为系统管理员,您可以安排一个延迟 shutdown,给用户保存其工作及注销系统留出时间。使用 shutdown 命令执行以下操作:

  • 关闭系统并在一定时间后关闭机器
  • 在不关掉机器电源的情况下关闭和停止系统
  • 取消待处理的 shutdown

先决条件

  • 根访问权限

流程

使用 shutdown 命令执行以下任何一个任务:

  • 指定您要关闭系统并关闭机器的时间:

    # shutdown --poweroff hh:mm

    其中 hh:mm 是 24 小时时间表示法的时间。为防止新的登录,在系统 shutdown 前 5 分钟会创建 /run/nologin 文件 。

    当使用时间参数时,您可以通过指定可选的 wall 消息 来通知登录到计划关闭的系统的用户,如 shutdown --poweroff 13:59 "Attention。系统将于 13:59" 关闭。

  • 在延迟后关闭和停止系统,而不关闭机器:

    # shutdown --halt +m

    其中 +m 是延迟时间(以分钟为单位)。您可以使用 now 关键字作为 +0 的别名。

  • 取消一个待处理的 shutdown:

    # shutdown -c

其他资源

13.4.3. 使用 systemctl 命令来关闭系统

作为系统管理员,您可以关闭系统并关闭机器,或使用 systemctl 命令关闭和停止系统,而不关掉机器电源。

先决条件

  • 根访问权限

流程

使用 systemctl 命令执行以下任何一个任务:

  • 关闭系统并关掉机器电源:

    # systemctl poweroff
  • 关闭和停止系统,而不关掉机器电源:

    # systemctl halt
注意

默认情况下,运行其中任何一个命令都可让 systemd 向当前登录到该系统的所有用户发送一条信息性消息。要防止 systemd 发送这条消息,请使用 --no-wall 命令行选项运行所选命令。

13.4.4. 重启系统

当您重启系统时,systemd 会停止所有正在运行的程序和服务,系统会关闭,然后立即启动。在以下情况下重启系统很有帮助:

  • 安装新软件或更新后
  • 更改系统设置后
  • 故障排除系统问题时

先决条件

  • 根访问权限

流程

  • 重启系统:

    # systemctl reboot
注意

默认情况下,当您使用此命令时,systemd 会向当前登录到该系统的所有用户发送一条信息性消息。要防止 systemd 发送这条消息,请使用 --no-wall 选项运行这个命令。

13.4.5. 通过挂起和休眠系统来优化功耗

作为系统管理员,您可以管理功耗,节省系统能源,并保留系统的当前状态。要做到这一点,请应用以下模式之一:

suspend
挂起会将系统状态保存在 RAM 中,但 RAM 模块除外,关闭机器中的大多数设备。当您重新打开机器时,系统会从内存中恢复其状态,而无需再次引导。由于系统状态保存在 RAM 中,而不是保存在硬盘上,因此,从挂起模式恢复系统比从休眠模式恢复要快得多。但是,挂起的系统状态也会受到断电的影响。
Hibernate
休眠会在硬盘上保存系统状态,并关闭机器。当您重新打开机器时,系统会从保存的数据中恢复其状态,而无需再次引导。由于系统状态保存在硬盘上,而不是保存在 RAM 中,因此机器不必保持对 RAM 模块的供电。但是,因此,从休眠模式恢复系统要比将其恢复为挂起模式恢复要慢得多。
Hybrid sleep
合并了休眠和挂起的元素。系统首先在硬盘上保存当前状态,并进入类似挂起的低电源状态,这允许系统更快地恢复。混合睡眠的好处是,如果系统在睡眠状态下断电,它仍然可以从硬盘上保存的镜像中恢复之前的状态,类似于休眠。
suspend-then-hibernate
此模式首先挂起系统,这会将当前系统状态保存到 RAM,并将系统置于低电源模式。如果系统保持挂起一段时间,则系统会休眠,您可以在 HibernateDelaySec 参数中定义。休眠将系统状态保存到硬盘上,并完全关闭系统。suspend-then-hibernate 模式提供了保留电池电源的好处,同时您仍能快速地恢复工作。另外,这个模式确保您的数据在出现电源故障时被保存。

先决条件

  • 根访问权限

流程

选择适当的节能方法:

  • 挂起系统:

    # systemctl suspend
  • 休眠系统:

    # systemctl hibernate
  • 休眠并挂起系统:

    # systemctl hybrid-sleep
  • 挂起然后休眠系统:

    # systemctl suspend-then-hibernate

13.4.6. systemctl 的电源管理命令的概述

您可以使用以下 systemctl 命令列表来控制系统的电源管理。

表 13.4. systemctl 电源管理命令的概述
systemctl 命令描述

systemctl halt

关闭系统。

systemctl poweroff

关闭系统。

systemctl reboot

重启该系统。

systemctl suspend

挂起系统。

systemctl hibernate

休眠系统。

systemctl hybrid-sleep

休眠并挂起系统。

13.4.7. 更改电源按钮行为

当您在计算机上按 power 按钮时,它会默认挂起或关闭系统。您可以根据您的偏好自定义此行为。

13.4.7.1. 更改 systemd 中的电源按钮行为

当您在非图形 systemd 目标中按 power 按钮时,它会默认关闭系统。您可以根据您的偏好自定义此行为。

先决条件

  • 管理访问权限.

流程

  1. 打开 /etc/systemd/logind.conf 配置文件。
  2. 查找有 HandlePowerKey=poweroff 的行。
  3. 如果行以 # 符号开头,请将其删除以启用设置。
  4. 使用以下选项之一替换 poweroff

    poweroff
    关闭计算机。
    reboot
    重启系统。
    halt
    启动系统停止。
    kexec
    启动 kexec 重启。
    suspend
    挂起系统。
    hibernate
    启动系统休眠。
    ignore
    什么都不做。

    例如,要在按下电源按钮时重启系统,请使用这个设置:

    HandlePowerKey=reboot
  5. 保存更改并关闭编辑器。

后续步骤

13.4.7.2. 更改 GNOME 中的电源按钮行为

在图形登录屏幕或在图形用户会话中,按 power 按钮默认挂起机器。当用户物理按下 power 按钮或从远程控制台按下虚拟 power 按钮时,才会出现这种情况。您可以选择不同的 power 按钮行为。

先决条件

流程

  1. /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 秒后自动关闭。但是,您可以从弹出查询中选择不同的行为。

  2. 可选:覆盖用户的设置,并阻止用户更改它。在 /etc/dconf/db/local.d/locks/01-power 文件中输入以下配置:

    /org/gnome/settings-daemon/plugins/power/power-button-action
  3. 更新系统数据库:

    # dconf update
  4. 注销并重新登录,使系统范围的设置生效。
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.