我希望混合暂停能够以某种方式运行。
如果我添加代码
# Always use suspend_hybrid instead of suspend
if [ "$METHOD" = "suspend" ]; then
METHOD=suspend_hybrid
fi
PM_HIBERNATE_DELAY=XX
到
/etc/pm/config.d/00-use-suspend-hybrid
其中 XX 是计算机休眠前的秒数,XX 表示计算机将 RAM 的状态写入磁盘前的秒数,还是计算机实际进入休眠模式前的秒数,或者两者兼而有之?
我想使用混合挂起,即当我合上笔记本电脑盖子时,RAM 的状态既写入磁盘,又在合上笔记本电脑盖子时保留在 RAM 中,然后在 XX 秒后计算机实际上进入休眠状态(从 RAM 中删除 RAM 的内容)。如果这不是上述代码的作用,有人能给我提供可以做到这一点的代码吗?谢谢!
代码取自这个问题: 如何默认使用 pm-suspend-hybrid 而不是 pm-suspend?
更新:我自己测试了一下,在关闭盖子使用混合暂停功能约 30 秒后取出笔记本电脑的电池。当我重新启动时,系统会像往常一样启动。当我省略
PM_HIBERNATE_DELAY=XX
线,当我跑的时候
sudo pm-suspend-hybrid
从终端。因此,可以得出结论,系统在挂起时不会立即将 RAM 的状态写入磁盘。
我的这个假设正确吗?
如果是的话,我想知道如何让混合挂起在计算机挂起时而不是计时器到期后将 RAM 的状态写入磁盘。
我知道这个问题主要是出于虚荣心,但这个问题已经发了一个月了,却没有一条评论。有人知道我可以去哪里找到解决方案吗?
答案1
从http://www.webupd8.org/2012/11/how-to-use-hybrid-suspend-in-ubuntu.html(解释)混合睡眠似乎有两种不同的版本。一种是同时挂起到 RAM 和磁盘;另一种是首先挂起到内存,然后唤醒计算机,PM_HIBERNATE_DELAY
然后挂起到磁盘,最后(似乎)关闭计算机。 这以前的似乎依赖于内核版本,并且仅支持 3.6+。据我所知,Ubuntu 12.10 使用 Linux 内核 3.5,因此后者似乎是您唯一的选择,无需升级(我想可能已经完成了)。
你没有说明PM_HIBERNATE_DELAY
在测试中设置了什么,根据问题中引用的页面但我相信,根据pm-suspend/pm-hiberate/pm-suspend-hybrid 手册页删除它的明确定义,将设置唤醒到休眠然后关闭序列延迟为 15 分钟(900 秒):
PM_HIBERNATE_DELAY [=900]
If you are using kernel suspend/resume and invoke
pm-suspend-hybrid, this environment variable controls how many
seconds the system will wait after going into suspend _before waking
back up and hibernating_. By default, this is set to 900 seconds (15
minutes).
你也没有提到你是否有,所以也建议你谨慎地检查一下,从问题中引用的页面,您的硬件支持混合挂起,通过建立结果sudo pm-is-supported --suspend-hybrid ; echo $?
是0
另外,也许值得注意的是,KDE 4.3 中显然有一个错误,如果混合挂起不可用,则使用标准挂起到 RAM(不确定是否没有明确通知)...http://www.informit.com/articles/article.aspx?p=1565701&seqNum=3。本文还包含一些与睡眠/混合睡眠/等相关的其他有用信息。
PS 不同的实现德莱戈·卡列霍的回答,位于http://www.cyberciti.biz/faq/linux-command-to-suspend-hibernate-laptop-netbook-pc
答案2
我发现在我的设备(ASUS 1215b)上,恢复失败是因为暂停网络管理器失败...
经过一些调试后,我发现dbus_set
文件上的命令失败了。然后,我将该文件上的两个函数(和)/usr/lib/pm-utils/sleep.d/55NetworkManager
的内容替换为:suspend_nm()
resume_nm()
/bin/sh #!/bin/sh 复制代码 # 如果我们正在运行 NetworkManager,告诉它我们将要睡眠。 # TODO:让 NetworkManager 更智能地处理睡眠/恢复 # 如果我们睡眠的时间比 TCP 重置所需的时间短 # 连接,并且我们在恢复时分配了相同的 IP,我们应该 # 不中断已建立的连接。Apple 可以做到这一点,而且它 # 相当漂亮。 . "${PM_FUNCTIONS}" 暂停_nm() { # 告诉 NetworkManager 关闭网络 printf “让 NetworkManager 将所有接口置于睡眠状态... AixMaN 方式...” 服务网络管理器停止 && echo 完成。 || echo 失败。 } 恢复_nm() { # 唤醒 NetworkManager 并让它建立新的连接 printf “让 NetworkManager 唤醒接口备份... AixMaN 方式...” 服务网络管理器启动 && echo 完成。 || echo 失败。 } 案例“$1” 休眠|暂停) 暂停_nm ;; 解冻|恢复) 简历 ;; *) 退出 $NA ;; 埃萨克
答案3
我在这里添加了有关启用混合暂停的问题的答案:https://askubuntu.com/a/344879/70266