您如何控制混合暂停的工作方式?

您如何控制混合暂停的工作方式?

我希望混合暂停能够以某种方式运行。

如果我添加代码

# 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

相关内容