如何在 Linux 中禁用挂起和休眠

今天我们将学习如何在 Linux 中禁用挂起和休眠。 在我们进入主题之前,让我们看一下计算机中暂停和休眠模式的简要介绍。

什么是挂起和休眠模式?

每当你 暂停 您的系统,计算机将进入睡眠模式。 含义 – 所有打开的应用程序、文件和文档都保持打开状态,但显示器和系统的其他部分将关闭以节省电力。 当您暂停计算机时,它不会完全关闭电源。 计算机仍处于开启状态,并且仍会使用少量电量。

冬眠 是暂停类型之一。 目前有三种可用的挂起方法:

  1. 挂起到 RAM 或者 正常暂停 – 在此模式下,屏幕和系统的大部分部分将关闭(但不完全),除了 内存. 当用户在特定时间不活动或系统使用电池运行或盖子关闭时,所有笔记本电脑都将进入此挂起模式。 当您按下某个键或单击鼠标按钮时,计算机将唤醒至正常模式。
  2. 挂起到磁盘 或者 休眠– 在此模式下,当前计算机的状态将被保存到 交换空间 系统将完全关闭。 当您再次打开系统时,状态将恢复。 这通常被称为 冬眠.
  3. 暂停两者 或者 混合暂停– 在这种模式下,当前计算机的状态被保存到交换空间,并调用通常的挂起到 RAM 模式。 因此,计算机并没有完全关闭。 如果电池电量耗尽,可以从磁盘恢复计算机。 如果电池没有耗尽,则可以从 RAM 恢复计算机。 这有时被称为 混合暂停.

希望您对挂起和休眠模式有基本的了解。 现在让我们回到主题,看看如何禁用挂起和休眠模式。

在 Linux 中禁用挂起和休眠

如果要防止 Linux 机器挂起和休眠,请在 systemd 级别禁用以下目标:

$ sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target

样本输出:

Created symlink /etc/systemd/system/sleep.target → /dev/null.
Created symlink /etc/systemd/system/suspend.target → /dev/null.
Created symlink /etc/systemd/system/hibernate.target → /dev/null.
Created symlink /etc/systemd/system/hybrid-sleep.target → /dev/null.

在 Linux 中禁用挂起和休眠

Save 一切正常(以防万一),然后运行以下命令以应用更改:

$ sudo systemctl restart systemd-logind.service

或者,重新启动系统以使其生效。

检查更改是否已真正应用:

$ systemctl status sleep.target suspend.target hibernate.target hybrid-sleep.target

样本输出:

● sleep.target
   Loaded: masked (/dev/null; bad)
   Active: inactive (dead)

● suspend.target
   Loaded: masked (/dev/null; bad)
   Active: inactive (dead)

● hibernate.target
   Loaded: masked (/dev/null; bad)
   Active: inactive (dead)

● hybrid-sleep.target
   Loaded: masked (/dev/null; bad)
   Active: inactive (dead)

正如您在上面的输出中看到的,挂起和休眠系统目标已被屏蔽且处于非活动状态。

要在系统上重新启用挂起和休眠,只需运行:

$ sudo systemctl unmask sleep.target suspend.target hibernate.target hybrid-sleep.target

样本输出:

Removed /etc/systemd/system/sleep.target.
Removed /etc/systemd/system/suspend.target.
Removed /etc/systemd/system/hibernate.target.
Removed /etc/systemd/system/hybrid-sleep.target.

如果您只想在盖子关闭时防止暂停,请编辑文件 /etc/systemd/logind.conf

$ sudo nano /etc/systemd/logind.conf

添加/修改以下行:

[Login] 
HandleLidSwitch=ignore 
HandleLidSwitchDocked=ignore

Save 和 close 文件。 不要忘记重新启动 systemd-logind.service 或重新启动系统以使更改生效。

有关更多详细信息,请查看手册页。

$ man logind.conf

建议阅读:

  • 在特定时间自动关闭、重启、挂起、休眠您的 Linux 系统
  • 自动从睡眠或休眠模式唤醒您的 Linux 系统
  • 如何在 Linux 中暂停进程并稍后恢复它

希望这可以帮助。