很多时候,当我重新启动时,我收到以下错误消息:
kernel: watchdog watchdog0: watchdog did not stop!
Run Code Online (Sandbox Code Playgroud)
我试图通过执行 来了解有关看门狗的更多信息man watchdog,但它说没有手动输入。我试了一下yum list watchdog,发现没有安装。但是,我查看/dev目录的时候,居然发现了两个看门狗:
watchdog 和 watchdog0
我好奇。我真的拥有任何看门狗吗?为什么内核会抱怨在我重新启动时它没有停止?
大多数现代 PC 硬件包括看门狗定时器设施。您可以通过维基百科在此处阅读有关它们的更多信息:Watchdog Timers。同样来自 Linux 内核文档:
摘录 - https://www.kernel.org/doc/Documentation/watchdog/watchdog-api.txt
看门狗定时器 (WDT) 是一种硬件电路,可以在出现软件故障时重置计算机系统。你可能已经知道了。
通常,用户空间守护进程会定期通过 /dev/watchdog 特殊设备文件通知内核看门狗驱动程序用户空间仍处于活动状态。当出现这样的通知时,驱动程序通常会告诉硬件看门狗一切正常,看门狗应该再等待一段时间来重置系统。如果用户空间失败(RAM 错误、内核错误等),通知将停止发生,并且硬件看门狗将在超时发生后重置系统(导致重新启动)。
Linux 看门狗 API 是一种相当特殊的结构,不同的驱动程序实现了其中的不同部分,有时甚至是不兼容的部分。该文件试图记录现有用法并允许未来的驱动程序编写者将其用作参考。
这个 SO Q&A 的标题是,谁在 Linux 中刷新硬件看门狗?,涵盖了 Linux 内核和硬件看门狗定时器之间的联动。
RPM 中的描述使这一点非常清楚,IMO。该watchdog守护进程可以作为一个软件看门狗或者可以与硬件实现交互。
看门狗程序可以用作强大的软件看门狗守护程序,也可以与硬件看门狗设备交替使用,例如与常驻基板管理控制器 (BMC) 的 IPMI 硬件看门狗驱动程序接口。看门狗定期写入/dev/watchdog;写入 /dev/watchdog 的间隔可通过 watchdog sysconfig 文件中的设置进行配置。
此配置文件还用于将看门狗设置为硬件看门狗,而不是其默认的软件看门狗操作。在任何一种情况下,如果设备打开但未在配置的时间段内写入,看门狗定时器到期将触发机器重新启动。当作为软件看门狗运行时,重新启动的能力将取决于机器的状态和中断。
当作为硬件看门狗运行时,机器将经历由 BMC 发起的硬重置(或任何配置为在看门狗定时器到期时采取的操作)。
| 归档时间: |
|
| 查看次数: |
3472 次 |
| 最近记录: |