![Ubuntu 在盖子关闭时不会进入休眠状态](https://linux22.com/image/835303/Ubuntu%20%E5%9C%A8%E7%9B%96%E5%AD%90%E5%85%B3%E9%97%AD%E6%97%B6%E4%B8%8D%E4%BC%9A%E8%BF%9B%E5%85%A5%E4%BC%91%E7%9C%A0%E7%8A%B6%E6%80%81.png)
我的笔记本电脑使用的是 Ubuntu 12.04。我尝试配置在盖子关闭时休眠。但是,没有用。我按照以下步骤解决了这个问题:
- 我启用
/etc/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pkla
- 系统设置-电源
- 我使用了 dconf 编辑器。
当我关闭盖子时,休眠模式反而暂停。我尝试运行sudo pm-hibernate
,运行正常。
有什么建议吗?
答案1
笔记:在尝试此操作之前,先在 shell 中尝试 pm-hibernate。如果有效,请继续。
我通过以下方式修复了它......
使用 cinnamon-settings / Power 将事件设置为 Hibernate。这会将 dconf 值设置
/org/gnome/settings-daemon/plugins/power/lid-close-ac-action
为/org/gnome/settings-daemon/plugins/power/lid-close-battery-action
您想要的值编辑
/etc/acpi/events/lm_lid
(gksudo gedit /etc/acpi/events/lm_lid
) 并填充
event=button/lid.* action=/etc/acpi/lid.sh
- 编辑
/etc/acpi/lid.sh
(gksudo gedit /etc/acpi/lid.sh
)。如果为空,请填充
grep -q closed /proc/acpi/button/lid/*/state if [ $? = 0 ] then su - gabriel -c 'gsettings get org.cinnamon.settings-daemon.plugins.power lid-close-ac-action' | grep hibernate if [ $? = 0 ] then pm-hibernate fi fi
否则,寻找合适的位置放置上述代码
替换gabriel
为您的用户名。您必须su
在调用之前执行此操作,gsettings get
因为此脚本以 root 身份运行,而gsettings get
以 root 身份运行将返回 root 的首选项,而不是您的用户。
您可以直接拨打电话pm-hibernate
,但随后更改选项cinnamon-settings
将不再起作用。我不在乎检查我的笔记本电脑是使用交流电还是电池,因为这无关紧要:无论如何我都希望始终保持相同的行为。也许有人想if
在那里添加一个?
答案2
以下是修复该问题的方法。
在您的文件中:
/etc/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pkla
确保其中有两个设置
[Enable hibernate by default in upower]
Identity=unix-user:*
Action=org.freedesktop.upower.hibernate
ResultActive=yes
[Enable hibernate by default in logind]
Identity=unix-user:*
Action=org.freedesktop.login1.hibernate
ResultActive=yes
原因如下。在此文件中:
/var/lib/polkit-1/localauthority/10-vendor.d/com.ubuntu.desktop.pkla
它将两个选项设置为“否”
您创建的文件应在 /var/lib 中的文件之后执行,因此它应优先于 /var/lib 中的文件(经过测试,确实如此)。您可以阅读相关信息这里在“评估顺序”部分下。当您的“upower”选项设置为“是”时,您可以从 Ubuntu 的电源设置中选择休眠。但是,您仍然无法休眠,因为 10-vendor.d 文件将 login1.hibernate 设置为“否”,而这也必须是“是”