如何禁用系统进入睡眠状态?


53

我可以在较旧的AMD 2400+台式机上在家安装Web服务器。我已经安装并正在运行Ubuntu 11.04,但是一段时间后,我无法再浏览到服务器。当我进入键盘并按下一个键时,一切都会神奇地恢复正常。

我已经浏览过BIOS,但没有看到任何省电功能已启用。在Ubuntu中有类似的东西吗?可以禁用吗?

我没有安装任何GUI。这仅是控制台。

Answers:


51

在Ubuntu 16.04 LTS上,我成功使用以下命令禁用了暂停:

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

并重新启用它:

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

来自man systemctl

mask NAME...  
           Mask one or more units, as specified on the command line. This
           will link these unit files to /dev/null, making it impossible to
           start them. This is a stronger version of disable, since it
           prohibits all kinds of activation of the unit, including
           enablement and manual activation. Use this option with care. This
           honors the --runtime option to only mask temporarily until the
           next reboot of the system. The --now option may be used to ensure
           that the units are also stopped. This command expects valid unit
           names only, it does not accept unit file paths.

 unmask NAME...
           Unmask one or more unit files, as specified on the command line.
           This will undo the effect of mask. This command expects valid
           unit names only, it does not accept unit file paths.

我将如何测试这些是否已被屏蔽?(那是什么maskunmask做什么?以前从未听说过。)
ArtOfWarfare

@ArtOfWarfare从man systemctl“在命令行上指定屏蔽一个或多个单元。这会将这些单元文件链接到/ dev / null,使其无法启动。这是禁用的更强版本,因为它禁止所有类型的激活单元,包括启用和手动激活。请谨慎使用此选项。荣幸地使用--runtime选项仅暂时屏蔽直到下一次系统重新启动。--now选项可用于确保单元已被也停止了。此命令仅需要有效的单元名称,它不接受单元文件路径。”
Centimane

@Centimane-谢谢。那么我将如何实际检查他们是否已经被mask教育?显然,我可以尝试仅运行它们,然后看看会发生什么,但这可能会导致我的计算机进入睡眠状态(这可能会...很糟糕...它出现了问题,这就是为什么我想确保它永远不会睡觉。)
ArtOfWarfare

@ArtOfWarfare您只需检查/etc/systemd/system/一下指向/dev/null
Centimane

@ArtOfWarfare或systemctl show -p FragmentPath [service]。该FragmentPath属性告诉您systemd单元文件所在的位置。蒙面的服务将说/dev/null
Centimane

19

图形用户界面

您是否看过:

系统->首选项->电源管理

在“交流电源”选项卡上,不活动计算机时将其置于睡眠状态:“从不”

终奌站

您可以打开“ gconf-editor”吗?

顺便拜访: /apps/gnome-power-manager/timeout

尝试设置sleep_computer_ac0

我也不太肯定是否需要更改其他内容。


如何在控制台上执行此操作?我没有安装GUI。
Mike Wills

@Mike Wills已更新,因为您没有GUI
Jason Iverson

1
同样,我没有gnome或任何安装的gnome。这是一个纯控制台。
Mike Wills

4
最新的命令行方式是:gsettings set org.gnome.settings-daemon.plugins.power sleep-inactive-ac-timeout '0' && gsettings set org.gnome.settings-daemon.plugins.power sleep-inactive-battery-timeout '0'
dess

2
@dess非常有帮助。谢谢!您应该将您的回复张贴在答案中,以供他人查看。
kalu 2016年

11

正确的答案位于此处

您是否尝试过将内核选项添加acpi=off apm=offGRUB_CMDLINE_LINUX_DEFAULT/etc/default/grub

然后运行sudo update-grub并重新启动计算机。


3
虽然将这些选项添加到我的grub配置中确实使我的机器无法进入睡眠状态,但应注意,设置acpi=off还有很多其他影响。对我来说,关键之一是它还会禁用超线程。
PicoutputCls

@PicoutputCls您链接的文章指出acpi=ht “几乎完全停用ACPI系统;仅使用超线程所需的组件”
pzkpfw

如果我设置acpi = off,整个系统将变得非常慢
GummyBear21


6

请尝试查看这些链接-cyberciti.bizArch论坛

这是来自cyberciti.biz链接的摘录:

默认情况下,Linux内核将使用screen-save选项禁用它,您需要键入以下命令(它会关闭显示器VESA的节能功能):

$ setterm -powersave off -blank 0

如果它转储回您,并显示以下错误:无法(取消)设置节能模式

您需要关闭X窗口系统并重新运行以上命令。最好 将以下两个命令添加到〜/ .xinitrc文件中:

setterm -blank 0 -powersave off -powerdown 0
xset s off

2

除了systemctl mask / unmask选项,我还使用以下命令打开/关闭Gnome桌面的挂起。

gsettings set org.gnome.settings-daemon.plugins.power sleep-inactive-battery-type 'suspend'
gsettings set org.gnome.settings-daemon.plugins.power sleep-inactive-ac-type 'suspend'

要么

gsettings set org.gnome.settings-daemon.plugins.power sleep-inactive-battery-type 'nothing'
gsettings set org.gnome.settings-daemon.plugins.power sleep-inactive-ac-type 'nothing'

我通过探索如何转储所有dconf / gsettings中列出的命令所揭示的设置找到了这些设置,以便可以在两台不同的计算机之间进行比较?


0

我找到了Light Locker,因为我拥有带LXDE(Lubuntu)Desktop的Ubuntu 14.04.2;如果您有此桌面,则可以更改默认值并通过该默认值管理监视器。否则,如果没有的话,您可能必须通过终端安装gconf-editor。可以在主菜单的“首选项”中找到Light Locker。


gconf-editor需要一个gui。
埃里克
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.