如何启用休眠模式?


424

在Ubuntu 12.04及更高版本中,默认情况下policykit中禁用了休眠模式。如何启用此功能?


11
他们为什么首先禁用它?与丢失音频有什么关系吗?
阿里


4
为了回答阿里的问题,它被禁用,因为许多人由于交换分区的问题而无法进入休眠状态。但是,在Ubuntu 14.10 Utopic Unicorn中,计划通过按钮和所有功能使休眠状态永久正常。
约翰·斯科特

1
对于15.04,您可能需要此问题askubuntu.com/q/614662/178596
Wilf

btrfs使用分区时,Hibernate可能无法工作。看到这里askubuntu.com/questions/768136/…–
Anwar

Answers:


334

如果此答案在Ubuntu 13.10中不起作用,请参见此处以获取替代答案


您可以在此处遵循官方文档。未通过Ubuntu认证的计算机在12.04上禁用了休眠模式。

为了启用休眠,您需要通过sudo pm-hibernate在终端中运行来测试其是否正常工作。系统将尝试休眠。如果您能够再次启动系统,那么添加替代项或多或少是安全的。

为此,请开始编辑:

sudo nano /etc/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pkla

填写此:

[Re-enable hibernate by default]
Identity=unix-user:*
Action=org.freedesktop.upower.hibernate
ResultActive=yes

或在14.04及更高版本中:

[Re-enable hibernate by default for login1]
  Identity=unix-user:*
  Action=org.freedesktop.login1.hibernate
  ResultActive=yes

[Re-enable hibernate for multiple users by default in logind]
  Identity=unix-user:*
  Action=org.freedesktop.login1.hibernate-multiple-sessions
  ResultActive=yes

按保存Ctrl- O然后enter再按下退出纳米Ctrl- X

重新启动,休眠又回来了!

或运行killall unity-panel-service以重置菜单。

然后,某些用户将需要运行sudo update-grub以使休眠选项在电源菜单中可用。一些用户可能还必须至少注销然后登录才能使其显示在(右上)电源菜单中。


1
该解决方案还可以在带有“其他状态菜单”扩展名的GNOME shell 3.4中使用。
罗伯特·沃尔法斯

1
@ cuda.geek是的,不再打扰整个gui了,键入这个小命令更快(使用别名甚至更快...):)
Aditya MP

15
真?这是更改这种简单设置的用户友好版本吗?每天都变得越来越难看...
Esteban

1
很棒的教程!我已经从Windows切换到ubuntu,并且很喜欢它!你们真棒:)
gfivehost

8
我认为这不是埃斯特万的观点。它不需要奥术魔术来启用休眠状态。想一想/ etc / default目录中的某些内容,您可以在其中将enable_hibernate =“ false”更改为enable_hibernate =“ true”。考虑使用“系统->设置”对话框,该对话框仅允许您打开并显示警告“这可能不起作用,您的计算机可能无法正常唤醒”。
Scott Marlowe

47

首先,您需要测试计算机是否支持休眠。使用以下命令对其进行测试:

 sudo pm-hibernate
 # or for newer Ubuntus like 17.04
 sudo systemctl hibernate

Ubuntu 16.04及更高版本

要在界面中启用,您需要运行sudo nano /etc/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pkla并填写:

[Re-enable hibernate by default in upower]
Identity=unix-user:*
Action=org.freedesktop.upower.hibernate
ResultActive=yes

[Re-enable hibernate by default in logind]
Identity=unix-user:*
Action=org.freedesktop.login1.hibernate;org.freedesktop.login1.hibernate-multiple-sessions
ResultActive=yes

Ubuntu 14.04和15.04

要在界面中启用,您需要sudo nano /etc/polkit-1/localauthority.conf.d/52-enable-hibernation.conf为Ubuntu 14.04和15.04 运行并填写:

[Re-enable hibernate by default]
  Identity=unix-user:*
  Action=org.freedesktop.upower.hibernate
  ResultActive=yes

[Re-enable hibernate by default for login1]
  Identity=unix-user:*
  Action=org.freedesktop.login1.hibernate;org.freedesktop.login1.hibernate-multiple-sessions
  ResultActive=yes

它可能有多个节,因为您可能有多个用户(因此,它不依赖于多用户,也不依赖于upower作为管理员而不是login1)

ps:官方最新文档https://help.ubuntu.com/stable/ubuntu-help/power-hibernate.html


1
它在Ubuntu 15.04上对我有用,而最初接受的答案无效。
Mike B.

@MikeB。之所以可行,是因为自Ubuntu 15.04起,核心Ubuntu系统开始使用systemd-替代旧的新贵。上面代码中具有“ logind”的最后一节是针对基于systemd的系统的。希望这对您的情况有所帮助。:D
x__x 2015年

ubuntu 16.04上为我工作 。唯一的问题是我解决了使用权限被拒绝的错误sudo
桑迪普

第一步sudo pm-hibernate得到command not found。我也尝试过sudo apt install sudo pm-hibernate,但也无法使用。这是Ubuntu 16.04版本。
LD詹姆斯

您的答案应该出现在列表的顶部,即使它的票数更少,对于使用当今软件的访问者来说也更有意义。
WinEunuuchs2Unix

32

此外,对于那些由于各种原因想要禁用“暂停”按钮的用户,请类似地进行...

选择任何文件名,但这是冗长/常规的:

sudoedit /etc/polkit-1/localauthority/50-local.d/com.ubuntu.disable-suspend.pkla

填写此:

[Disable suspend by default]
Identity=unix-user:*
Action=org.freedesktop.upower.suspend
ResultActive=no

Ctrl+ OEnterCtrl+X

无需重启,进入关机菜单后应立即消失。


您的意思是:ResultActive=yes

1
不,应该是ResultActive=no。答案指定此选项禁用挂起。
Michael Mior 2014年

14

还有一件事:

当您要将休眠选项添加到XFCE的面板时,必须右键单击您的名称(右上角)并选择properties

之后弹出一个屏幕:

在此处输入图片说明

确保,像我一样检查Hibernate。


14

首先,我确实建议您测试笔记本电脑是否支持休眠方式,因为默认情况下禁用休眠方式的原因是它有时在某些计算机上会产生致命的后果。通过以下方式测试您的机器

Ctrl+ Alt+ T然后sudo pm-hibernate

您的计算机应休眠。休眠后将机器唤醒,并观察其行为是否正常或是否正常运行。如果您在休眠后遇到任何异常,那么我建议您不要继续执行以下过程。但是,如果工作正常,请继续激活休眠模式,方法是:

sudo gedit /etc/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pkla

编辑打开的文件并添加以下行:

[Re-enable hibernation]
Identity=unix-user:*
Action=org.freedesktop.upower.hibernate
ResultActive=yes

之后,重新启动计算机,并在登录后在右上角的设置角看到一个休眠选项。


为什么要回滚?

这是一个错误的回滚
kelvinelove

6

如果使用的响应/etc/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pkla无法正常工作,请不要忘记通过以下方式删除文件:

sudo rm /etc/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pkla

并尝试使用TuxOnIce


首先确保您有足够的交换空间。它的大小应与RAM大小相同或更大。使用命令

free

规则交换>内存。如果不是这种情况,请扩大交换大小。然后通过安装TuxOnIce

sudo add-apt-repository ppa:tuxonice/ppa
sudo apt-get update
sudo apt-get install tuxonice-userui linux-generic-tuxonice linux-headers-generic-tuxonice

然后,您可以尝试通过以下方式运行休眠测试:

sudo pm-hibernate

不要忘记在保存之前保存您的工作。

如果一切正常,您的计算机将关闭。开机后,您的桌面将进入休眠状态。


tuxonice也对我有用,而Ubuntu 14.04本机休眠由于某种原因而失败!
莱泽克

5

使用脚本启用休眠

我已将以上答案翻译为bash脚本。这使得在多台机器上的安装不再那么麻烦。

剧本enable-hibernate

#!/bin/bash
#http://askubuntu.com/a/94963/164341
cat << '_EOF_' |sudo tee /etc/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pkla
[Enable Hibernate]
Identity=unix-user:*
Action=org.freedesktop.upower.hibernate
ResultActive=yes
_EOF_
clear
echo
echo 'Hibernate enabled.'
echo

剧本disable-suspend

#!/bin/bash
#http://askubuntu.com/a/154821/164341
cat << '_EOF_' |sudo tee /etc/polkit-1/localauthority/50-local.d/com.ubuntu.disable-suspend.pkla
[Disable suspend by default]
Identity=unix-user:*
Action=org.freedesktop.upower.suspend
ResultActive=no
_EOF_
clear
echo
echo 'Suspend disabled.'
echo

注意:请不要忘记使chmod +x两个脚本都可执行。


4

一个简单的命令,它与接受的答案完全相同,但非交互式地:

cat <<EOF | sudo tee /etc/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pkla
[Re-enable hibernate by default]
Identity=unix-user:*
Action=org.freedesktop.upower.hibernate
ResultActive=yes
EOF

2

在12.04中,我成功启用了指标菜单中的休眠选项以使其休眠。但是,我仍然无法从休眠状态成功恢复。我确实按照以下步骤解决了此问题:

在12.04中启用休眠

为了启用Hibernate,我遵循了Dima的回答

启用休眠后,我便可以休眠。但是问题是,我无法从休眠中成功恢复。每当我从休眠状态启动PC时,它的启动就像正常启动一样。因此,我必须执行这些操作才能从休眠状态恢复。

能够从休眠中恢复的修复

有两种方法可以解决此问题。

1.编辑/etc/initramfs-tools/conf.d/resume文件

  1. 首先获取交换分区的UUID。

     sudo blkid | grep swap
    

    这将输出类似于以下内容的行:

    /dev/sda12: UUID="a14f3380-810e-49a7-b42e-72169e66c432" TYPE="swap"
    

    实际的行与此将不匹配。在"..."双引号之间复制UUID的值。

  2. 打开简历文件

    gksudo gedit /etc/initramfs-tools/conf.d/resume
    

    然后在该文件中添加这样的一行

    RESUME=UUID=a14f3380-810e-49a7-b42e-72169e66c432
    

    不要忘记替换从步骤1中获得的实际UUID值。保存文件并退出gedit

  3. 然后在终端中执行此命令

    sudo update-initramfs -u
    

您现在可以从休眠状态恢复

2.编辑/etc/default/grub文件。

  1. 打开一个终端并执行以下命令将其打开

    gksudo gedit / etc / default / grub

  2. 会出现类似这样的行 GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" 。编辑该行以RESUME=UUID=<your-uuid-value-here>在单词后面插入splash

    例如,在我的情况下,编辑后该行如下所示

     GRUB_CMDLINE_LINUX_DEFAULT="quiet splash resume=UUID=a14f3380-810e-49a7-b42e-72169e66c432" 
    

    确保使用了从sudo blkid | grep swap命令获取的UUID值。

  3. 然后执行此命令

     sudo update-grub
    

这也使您能够成功从休眠中恢复。


经过两个Ubuntu安装的测试,都可以


将此作为单独的问题和答案提出。人们可能会搜索“无法从暂停中恢复”,而找不到出色的文章。
迪马

在您提出建议后,我创建了这个自我解答的问题askubuntu.com/questions/196364/…–
Anwar,

0

我的笔记本上装有Ubuntu Gnome 17.04 amd64。我执行以下操作以启用休眠方式:

$ sudo apt-get install hibernate来源

这个也装了 libx86-1uswsuspvbetool

然后,我可以成功休眠sudo systemctl hibernatepm-hibernate我的路径中没有可执行文件。

$ sudo nano /etc/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pkla

插入:(来源

[Re-enable hibernate by default in upower]
Identity=unix-user:*
Action=org.freedesktop.upower.hibernate
ResultActive=yes

[Re-enable hibernate by default in logind]
Identity=unix-user:*
Action=org.freedesktop.login1.hibernate;org.freedesktop.login1.handle-hibernate-key;org.freedesktop.login1;org.freedesktop.login1.hibernate-multiple-sessions;org.freedesktop.login1.hibernate-ignore-inhibit
ResultActive=yes

安装了https://extensions.gnome.org/extension/755/hibernate-status-button/

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.