如何启用休眠?

Dim*_*ima 431 hibernate power-management

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

Dim*_*ima 336

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


对于未通过 Ubuntu 认证的机器,在 12.04 上禁用了休眠。

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

为此,请开始编辑:

sudo nano /etc/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pkla
Run Code Online (Sandbox Code Playgroud)

用这个填充它:

[Re-enable hibernate by default]
Identity=unix-user:*
Action=org.freedesktop.upower.hibernate
ResultActive=yes
Run Code Online (Sandbox Code Playgroud)

或者在 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
Run Code Online (Sandbox Code Playgroud)

保存按Ctrl-O然后enter再退出nano按Ctrl- X

重启和休眠又回来了!

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

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

  • 真的吗?这是更改如此简单设置的用户友好版本吗?一天比一天丑。。。 (15认同)
  • 我不认为那是埃斯特班的观点。它不应该需要奥术魔法来启用休眠。想想 /etc/default 目录中的一些内容,您将其中一行从 enable_hibernate="false" 更改为 enable_hibernate="true"。想想有一个 system->settings 对话框,它只是让你打开它并警告“这可能不起作用,你的机器可能无法正常唤醒。” (8认同)

mor*_*ook 52

首先你需要测试你的机器是否支持休眠。使用以下命令进行测试:

 sudo pm-hibernate # if not found install with "apt install pm-utils"
 # or for newer Ubuntus above 17.04
 sudo systemctl hibernate
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

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

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


小智 33

此外,对于那些想要禁用挂起按钮(出于各种原因)的人,请以类似方式进行...

选择任何文件名,但这是一个冗长/约定:

sudoedit /etc/polkit-1/localauthority/50-local.d/com.ubuntu.disable-suspend.pkla
Run Code Online (Sandbox Code Playgroud)

用这个填充它:

[Disable suspend by default]
Identity=unix-user:*
Action=org.freedesktop.upower.suspend
ResultActive=no
Run Code Online (Sandbox Code Playgroud)

Ctrl+ O, Enter, Ctrl+X

无需重新启动,一进入关机菜单它就应该消失了。


mre*_*req 14

还有一件事:

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

之后会弹出一个屏幕:

在此处输入图片说明

确保您像我一样检查 Hibernate。


kel*_*ove 14

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

Ctrl+ Alt+T然后sudo pm-hibernate

你的机器应该休眠。休眠后唤醒您的机器并观察它是否行为异常或是否正常运行。如果您在休眠后遇到任何异常,那么我建议您不要继续执行以下步骤。但是,如果它工作正常,请继续通过以下方式激活休眠

sudo gedit /etc/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pkla
Run Code Online (Sandbox Code Playgroud)

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

[Re-enable hibernation]
Identity=unix-user:*
Action=org.freedesktop.upower.hibernate
ResultActive=yes
Run Code Online (Sandbox Code Playgroud)

之后,重新启动您的机器,登录后,您应该会在右上角的设置角看到一个休眠选项。


Ser*_*ndt 6

使用脚本启用休眠

我已将上述答案翻译成bash脚本。这使得在多台机器上的安装不那么令人厌烦。

脚本enable-hibernate

#!/usr/bin/env bash
# https://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
Run Code Online (Sandbox Code Playgroud)

脚本disable-suspend

#!/usr/bin/env bash
# https://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
Run Code Online (Sandbox Code Playgroud)

注意:不要忘记让chmod +x这两个脚本都可以执行。


Dee*_*Dee 5

如果响应与/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
Run Code Online (Sandbox Code Playgroud)

并尝试使用TuxOnIce


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

free
Run Code Online (Sandbox Code Playgroud)

规则交换 > 内存。如果不是这种情况,请扩大交换大小。然后通过以下方式安装 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
Run Code Online (Sandbox Code Playgroud)

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

sudo pm-hibernate
Run Code Online (Sandbox Code Playgroud)

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

如果一切顺利,您的计算机将关闭。开启后,您的桌面将处于休眠前的状态。