如何检测系统何时挂起?

我需要能够记录Ubuntu 10.04 Desktop系统暂停和恢复的时间。

我可以通过DBus信号(org.freedesktop.UPower.Resuming())检测系统何时恢复,但相应的“org.freedesktop.UPower.Sleeping()”信号永远不会被触发。 理想情况下,我想使用DBus,但鉴于我没有成功,我会对任何解决方案感到满意,只要它可以从命令行调用。

我发现了一种方法:

tail -f /var/log/pm-suspend.log | grep“执行暂停”

这只是监听其中一个pm日志以进行挂起日志记录。 虽然这有效,但它可能相当脆弱。 由于日志语句的变化,我发现在过去依赖于日志解析是相当有问题的。

理想情况下,我想要一个更强大的机制。 调用它的服务将以root身份运行。

尝试将以下内容放在/etc/pm/sleep.d 。 这应该与您的机器是使用APM还是ACPI无关。

 #!/bin/sh LOGFILE="/var/log/sleep.log" case "$1" in resume) echo "Resumed from suspend at `date`" >> "$LOGFILE" ;; thaw) echo "Resumed from hibernation at `date`" >> "$LOGFILE" ;; suspend) echo "Suspended to ram at `date`" >> "$LOGFILE" ;; hibernate) echo "Hibernated to disk at `date`" >> "$LOGFILE" ;; esac 

您可以在/etc/apm/suspend.d中删除脚本。 它应该在每次机器暂停时执行。

您也可以使用/etc/apm/resume.d以类似的方式在唤醒时运行脚本。