![恢复麻烦:内核如何知道它应该恢复?](https://linux22.com/image/1150820/%E6%81%A2%E5%A4%8D%E9%BA%BB%E7%83%A6%EF%BC%9A%E5%86%85%E6%A0%B8%E5%A6%82%E4%BD%95%E7%9F%A5%E9%81%93%E5%AE%83%E5%BA%94%E8%AF%A5%E6%81%A2%E5%A4%8D%EF%BC%9F.png)
今天我遇到了一个新的挂起/恢复问题。在装有 Ubuntu 17.04 的 Dell Precision 5510 上,一切正常。但现在,恢复不起作用。我总是重新启动。
昨天,我有一个失控的脚本,它使 UI 瘫痪了。我犯了一个编程错误,导致这个脚本消耗了所有系统资源。我去了另一台计算机,并通过 ssh 连接到这台“冻结”的计算机。我尝试以老式的方式关闭系统:
/sbin/shutdown -h now
然而,等了 20 分钟后,我放弃了,按住了电源按钮。这东西会启动,也会挂起。如果我打开盖子,它会自动唤醒。这就是我知道机器实际上已挂起的原因,它会自动启动。
但是,暂停后机器会重新启动,而不是恢复。
我的工作理论是,非正常崩溃损坏了设置文件,该文件必须在挂起期间重写。该文件是 RAM 恢复正常(而不是重新启动)的信号。
我不确定是否存在用于暂停/恢复的文件,但我在这里发现有关 hybernate/resume 的评论,它说它使用状态文件来判断它是否可以尝试恢复会话。
我预计这个问题会在一些软件包更新后随机消失,但它让我非常好奇系统如何检查是否应该重新启动。
答案1
关机、重启、再关机、再重启后问题消失。之后,我经历了 3 次挂起/恢复,没有出现意外重启。
不过,我很好奇想了解这是如何工作的,内核如何知道恢复而不是暂停。