我正在Debian Linux上的一个应用程序项目上工作,该项目涉及到通过服务创建的PID文件来监控其他服务的软件watchdog。
我遵循http://linux.die.net/man/5/watchdog.conf中的步骤并通过以下方式安装它
apt-get安装监视器
背后的机制是watchdog检查这些PID文件是否存在,这些PID文件配置在/etc/watchdog,conf文件中。
我已经通过按service service-name stop停止任何服务进行了测试
Watchdog将检测到服务未处于运行状态,因此它会在与监视程序超时时间相等的几秒钟后重新启动系统。
考虑到我们有一个显示器较少的产品,如果服务的配置文件被破坏,那么它将无限次地重新启动系统,而不会向最终用户发出任何通知。
实际的期望是,在看门狗采取重启/停止/软重启操作之前,我想知道看门狗的状态,以便程序员能够为最终用户实现提示逻辑。
否则,是否可以修改/etc/init.d/中的看门狗初始化脚本,以便在停止软件看门狗时调用用户程序,以便程序员能够在非易失性存储器中维护计数器,以避免无限时间重启。
除了上面,我想要更多关于这个软件看门狗或看门狗守护进程,以获得状态。我已经实现了它来监控服务,CPU过载,温度等,但我没有得到任何事件之前看门狗的行动,因此我不明白为什么系统重新启动由于服务关闭,CPU过热或CPU过载等。
发布于 2016-08-21 00:07:27
看门狗被设计为在系统故障到无法恢复时拯救系统的最后手段。硬件看门狗将在物理上重置CPU,并用于确保系统不会长时间挂起。
没有办法收到在软件中将发生这种情况的警告,因为它假设所有软件都失败了。
如果您需要一个检测到某个进程不再响应的解决方案,则应该将其与watchdog分开。
查看这个问题的答案,了解类似的内容:Designing a monitor process for monitoring and restarting processes
https://stackoverflow.com/questions/39055418
复制相似问题