Red Hat Training

A Red Hat training course is available for RHEL 8

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

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

14.4.1. 系统关闭

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

使用 shutdown 有以下优点:

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

14.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

其他资源

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

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

先决条件

  • 根访问权限

流程

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

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

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

    # systemctl halt
注意

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

14.4.4. 重启系统

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

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

先决条件

  • 根访问权限

流程

  • 重启系统:

    # systemctl reboot
注意

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

14.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

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

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

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

systemctl 命令描述

systemctl halt

关闭系统。

systemctl poweroff

关闭系统。

systemctl reboot

重启该系统。

systemctl suspend

挂起系统。

systemctl hibernate

休眠系统。

systemctl hybrid-sleep

休眠并挂起系统。

14.4.7. 按下电源按钮时更改系统的行为

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

先决条件

  • 管理访问权限.

流程

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

    • poweroff 来关闭计算机。
    • reboot 进行系统重启。
    • halt 来发起系统停止。
    • kexec 用于基于 kexec 的重启。
    • suspend 来挂起系统。
    • hibernate 发起系统休眠。
    • ignore 什么都不做。

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

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