在监视程序重启操作系统

时间:2016-08-20 14:50:01

标签: c linux debian systems-programming

我正在开发Debian Linux上的应用程序项目,该项目涉及软件监视程序,以通过服务创建的PID文件监视其他服务。

我正在遵循http://linux.die.net/man/5/watchdog.conf的步骤 并通过

安装

apt-get install watchdog

后面的机制是看门狗检查这些在/ etc / watchdog,conf文件中配置的PID文件。

我已通过停止任何服务来测试它 服务服务名称停止

Watchdog将检测到该服务未处于运行状态,因此它会在等待看门狗超时时间后重启系统。

考虑到我们有一个显示较少的产品,然后它将重新启动系统无限时间,而不会在服务的配置文件损坏等情况下对最终用户进行任何暗示。

实际的期望是,在看门狗为reboot / halt / soft-restart采取行动之前,我想了解看门狗的状态,以便程序员可以为最终用户实现判断逻辑。

否则可以修改/etc/init.d/中的watchdog init脚本以在停止软件看门狗时调用用户程序,这样程序员就可以在非易失性存储器中维护一个计数器,以避免无限次重启。 / p>

除了上面我想要更多关于这个软件看门狗或看门狗守护进程来获取状态。我已经实现了它来监视服务,CPU过载,温度等但我没有在看门狗动作之前得到任何事件因此我不知道系统由于服务中断,CPU过热或CPU过载而重新启动的原因等。

1 个答案:

答案 0 :(得分:1)

监视器被设计为在系统失败超过恢复之后拯救系统的最后手段。硬件看门狗将物理地重置CPU,并用于确保系统不会长时间挂起。

由于假设所有软件都已失败,因此无法收到软件中发生此警告的警告。

如果您需要一个能够检测到某个流程不再响应的解决方案,那么您应该将其与监管机构分开。

有关类似内容,请参阅此问题的答案: Designing a monitor process for monitoring and restarting processes