【问题标题】:How to detect issue occurs in watchdog daemon in Linux(Debian) before watchdog reboot the OS如何在看门狗重新启动操作系统之前检测 Linux(Debian)中的看门狗守护程序中出现的问题
【发布时间】:2016-08-20 14:50:00
【问题描述】:

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

我正在按照http://linux.die.net/man/5/watchdog.conf 的步骤进行操作 并由

安装

apt-get 安装看门狗

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

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

Watchdog 将检测到服务未处于运行状态,因此它会在等于 watchdog 超时时间的几秒钟后重新启动系统。

假设我们有一个显示较少的产品,那么如果服务的配置文件损坏等情况,它将无限次重启系统,而不会向最终用户发出任何提示。

实际期望是,在看门狗对重启/暂停/软重启采取行动之前,我想知道看门狗的状态,以便程序员可以为最终用户实现提示逻辑。

否则可以修改 /etc/init.d/ 中的看门狗初始化脚本以在停止软件看门狗时调用用户程序,以便程序员能够在非易失性存储器中维护一个计数器以避免无限时间重启。

除了上面我想了解更多关于这个软件看门狗或看门狗守护进程的信息。我已经实现了它来监控服务、CPU 过载、温度等,但在看门狗动作之前我没有收到任何事件,因此我不明白为什么系统由于服务关闭、CPU 过热或 CPU 过载等而重新启动。

【问题讨论】:

    标签: c linux debian systems-programming


    【解决方案1】:

    看门狗被设计为在系统发生故障无法恢复后拯救系统的最后手段。硬件看门狗将物理重置 CPU,并用于确保系统不会长时间挂起。

    由于假定所有软件都已失败,因此无法收到软件中会发生这种情况的警告。

    如果您需要一个检测到某个进程不再响应的解决方案,您应该将其与看门狗分开。

    查看此问题的答案以了解类似情况: Designing a monitor process for monitoring and restarting processes

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-08-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-09
      • 2016-08-21
      相关资源
      最近更新 更多