如何在Kubuntu中完全禁用Hibernate?


11

我已经看到了如何禁用休眠的答案,但我没有这样的文件。可能是因为该建议是针对Ubuntu而不是Kubuntu(KDE,不是Gnome)编写的。

我的加密固态硬盘上没有交换设备,如果不小心按了“能源管理”上的“休眠”按钮,系统将冻结(甚至无法更改Caps Lock)。我的键盘在音量控制按钮旁边有一个休眠按钮(Fn+ F4),每当我按错键时,系统都会冻结。

那么,禁用它的正确方法是什么?如果没有解决方案,也欢迎您解决。


+1对于运行OCZ Vertex2驱动器的任何人,此问题(和禁用挂起)都是一个非常重要的问题...挂起/休眠可以立即清除驱动器,而无望恢复单个字节。:(
罗斯

Answers:


6

触发休眠:

  • 按下启动按钮中的“休眠”按钮->离开->休眠
  • 在系统任务栏中的“能源”图标上按“休眠”
  • 发送dbus信号: qdbus org.kde.kded /modules/powerdevil suspend 4

触发休眠模式时,这是执行流程:

  1. /usr/lib/hal/scripts/linux/hal-system-power-hibernate-linux 叫做
  2. /usr/sbin/pm-hibernate 用一些参数调用
  3. 记录开始 /var/log/pm-suspend.log
  4. 执行挂钩可以为休眠做准备。这些挂钩位于/usr/lib/pm-utils/sleep.d//etc/pm/sleep.d,并按名称排序(第一个数字)
  5. performing hibernate 被写入日志
  6. do_hibernate调用shell函数,指示系统进入休眠状态
  7. 系统恢复时,将执行挂钩以从休眠状态恢复
  8. 系统再次运行

要禁用休眠,请/etc/pm/sleep.d/000no-hibernation使用以下内容创建:

#!/bin/sh
# prevents hibernation
. "$PM_FUNCTIONS"
[ "$1" = "hibernate" ] && inhibit || true

正如000no-hibernation之前的脚本00logging(在日志中输出模块和内存信息)所称的,没有应用程序或模块被中断或卸载。这个名字的灵感来自/usr/lib/pm-utils/sleep.d/000kernel-change。提防错误#665651,该错误使钩子的非零返回值无法取消挂起或休眠状态。

这为我解决了休眠问题。尽管屏幕被锁定,但我可以忍受这一点。与崩溃系统相比,它要好得多。


我已经添加|| true了防止非零退出代码的方法,这可以防止挂起。经测试可用于挂起和阻止休眠。
Lekensteyn'3

好答案!非常彻底..感谢您发布发现的内容。对此脚本进行扩展(从您链接的错误报告中)可以完全停止休眠挂起状态。编辑以仅执行其中之一也是微不足道的。
拉斯(Russ)
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.