好的,我知道已经有几个与此相关的问题。我尝试了很多解决方案,但都无济于事。我将在这里详细说明我做了什么以及我的配置文件如何,希望有好心人能指出我遗漏了什么。
一些初步信息:
- 我从 14.01 .iso 安装了 Ubuntu 14,但它变成了 14.04,我猜是因为我在安装过程中选中了自动更新选项。
- 我连接了外接显示器。在某些情况下,这似乎很重要。
- 正如解释的那样这里,Ubuntu 14的电源设置里没有让PC休眠的选项,只能挂起,什么也不做。
pm-hibernate
工作正常。- 我的交换空间比我的 RAM 稍大一些
1.
我有一台 Mint(如果我没记错的话是 14),关闭盖子后才会进入休眠状态,直到我添加了一些脚本。在 Ubuntu 14 中没有/etc/acpi/lid.sh
我可以像在 Mint 中那样编辑的内容。我尝试创建一个包含以下内容的内容:
echo 'ok' > ok
grep -q closed /proc/acpi/button/lid/*/state
if [ $? = 0 ]
then
su - gabriel -c 'dconf read /org/gnome/settings-daemon/plugins/power/lid-close-ac-action' | grep hibernate
if [ $? = 0 ]
then
pm-hibernate
fi
fi
当我合上盖子时,文件ok
没有被创建,这意味着脚本从未被调用。
我尝试将 lid.sh 移入events/
。
根据建议这里,我尝试将其重命名为lid.sh.post
并将其移动到/etc/acpi/local/
,以及其他几种目录和名称的组合(带/不带.post
,在/etc/acpi/
,local/
,events/
...)
2.
我照做了这里并安装了gnome-tweak-tool
,这样我就可以将合上盖子时的操作设置为休眠。在我这样做之后,控制面板/电源中的下拉菜单是空白的(不是暂停也不是“不执行任何操作”),但现在它们再次显示“不执行任何操作”,我不知道我做了什么来改变这一点。并运行
su - gabriel -c 'dconf read /org/gnome/settings-daemon/plugins/power/lid-close-ac-action'
仍然返回“无”,这会损害我的脚本(可能无论如何都是无用的)。
3.
我照做了这里:编辑/etc/systemd/logind.conf
并设置HandleLidSwitch
为“休眠”:
cat /etc/systemd/logind.conf | grep -i lid
#HandleLidSwitch=hibernate
#LidSwitchIgnoreInhibited=yes
我也尝试过
#LidSwitchIgnoreInhibited=no
4.
正如解释的那样这里和这里,我编辑了/var/lib/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pkla
:
root@gabriel-linux:/var/lib/polkit-1/localauthority/50-local.d# cat 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
ResultActive=yes
答案1
lid.sh
为了调用我的脚本( ) /etc/acpi/
,我必须在中创建正确的文件/etc/acpi/events/
。
该文件必须被调用lm_lid
,内容如下:
event=button/lid.*
action=/etc/acpi/lid.sh
重新启动系统以使该功能生效。
笔记:在弄清楚这一切之前,我回到了 Linux Mint(现在是 17),现在有了正确的文件,这个就可以正常工作了。不过,我想听听 Ubuntu 用户的意见。
答案2
我在 Linux Mint 17.3 中遇到了类似的问题。当我安装 nvidia 视频驱动程序代替默认开源驱动程序时,问题就解决了。(管理->驱动程序管理器->选择 nvidia 推荐的驱动程序)