Linux禁用挂起和休眠

时间:2020-03-21 11:46:08  来源:igfitidea点击:

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

每当我们挂起系统时,计算机都会进入睡眠模式。
这意味着所有打开的应用程序,文件和文档都保持打开状态,但是显示器和系统的其他部分将关闭以节省电量。
当我们挂起计算机时,它不会完全关闭电源。
笔记本计算机仍处于打开状态,并且仍将使用少量电源。

休眠是挂起类型之一。
当前有三种可用的挂起方法:

  • 挂起至内存或者“正常”挂起-在此模式下,屏幕和系统的大多数部分都将关闭(但不能完全关闭),但内存除外。当用户在特定时间内处于非活动状态或者系统依靠电池运行或者关闭机盖时,所有笔记本电脑都将进入此挂起模式。当我们按某个键或者单击鼠标按钮时,计算机将唤醒到正常模式。
  • 挂起至DISK或者Hibernate-在此模式下,当前计算机的状态将保存到交换空间中,并且系统将完全关闭。再次打开系统电源后,状态将恢复。这通常称为休眠。
  • 暂挂到BOTH或者Hybrid暂挂-在此模式下,当前计算机的状态保存到交换空间中,并调用通常的暂挂到内存模式。因此,计算机没有完全关闭。如果电池电量耗尽,则可以从磁盘恢复计算机。如果电池没有耗尽,则可以从内存中恢复计算机。有时称为混合暂停。

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

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

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

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

保存所有作品(以防万一),然后运行以下命令使更改生效:

$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)

如我们在上面的输出中看到的那样,suspend和hibernate系统目标已被屏蔽且处于非活动状态。

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

$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

保存并关闭文件。
不要忘记重启systemd-logind.service或者重启系统以使更改生效。

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

$man logind.conf