在 Debian 中如何查明 Linux 机器在上次启动之前是否过热并被关闭?

在 Debian 中如何查明 Linux 机器在上次启动之前是否过热并被关闭?

今天我正在一台远程机器上工作(我可能永远不会看到这样的机器),它挂起了,所以我告诉用户重新启动它。机器再次启动,我ssh进入了它,但是当我启动时,我就收到一条关于其温度高于 60°C 的消息,因此内核再次关闭了机器,当然我也断开了连接从ssh

我们即将再次启动机器,有没有办法从日志中读取内容,表明该机器过去因太热而关闭?

答案1

当机器过热时,在内核关闭系统之前,它会生成一条消息,存储在日志文件中。对于systemd设置,可以通过journalctl命令访问该文件,相关输出应如下所示:

Jul 09 05:28:39 jjmach kernel: thermal thermal_zone0: critical temperature reached (96 C), shutting down
Jul 09 05:28:40 jjmach root[27818]: ACPI event unhandled: thermal_zone LNXTHERM:00 000000f0 00000001
Jul 09 05:28:57 jjmach kernel: thermal thermal_zone0: critical temperature reached (96 C), shutting down
Jul 09 05:28:57 jjmach lightdm[174]: Failed to get D-Bus connection
Jul 09 05:28:46 jjmach pppd[17312]: Hangup (SIGHUP)
Jul 09 05:29:00 jjmach org.a11y.Bus[265]: Reloaded configuration
Jul 09 05:28:42 jjmach systemd[1]: Stopping Daemon for power management...

$SYSTEMD_PAGER因此,我们需要(通常less)或直接搜索“临界温度” :

journalctl -g 'temperature|critical'

您只能-b -1在最后一次启动的消息中添加搜索。


话虽如此,我认为 60°C 对于触发点来说确实非常低。大多数 CPU 在编译或其他资源丰富的任务期间通常会达到该温度。确保您已加载所有正确的模块(针对您的处理器)并使用sensors-detect随后的sensors命令检查热参数。

相关内容