我是否拥有看门狗?


11

重新启动时,通常会收到以下错误消息:

kernel: watchdog watchdog0: watchdog did not stop!

我试图通过做来找到有关看门狗的更多信息man watchdog,但是它说没有手动输入。我尝试过yum list watchdog发现它没有安装。但是,当我查看/dev目录时,实际上发现了两个看门狗:

watchdogwatchdog0

我好奇。我实际上拥有任何看门狗吗?为什么内核在重启时抱怨它没有停止?

Answers:


7

大多数现代PC硬件都包含看门狗定时器功能。您可以通过Wikipedia:看门狗计时器了解更多有关它们的信息。同样来自Linux内核文档:

摘录-https: //www.kernel.org/doc/Documentation/watchdog/watchdog-api.txt

看门狗定时器(WDT)是一种硬件电路,在发生软件故障时可以将计算机系统复位。您可能已经知道了。

通常,用户空间守护程序会定期通过/ dev / watchdog专用设备文件通知内核监视程序驱动程序该用户空间仍然存在。发生此类通知时,驱动程序通常会告知硬件看门狗一切正常,看门狗应再等一会儿才能重置系统。如果用户空间发生故障(RAM错误,内核错误等),则通知将不再发生,并且在发生超时后,硬件监视程序将重置系统(导致重新引导)。

Linux看门狗API是一个特别的结构,不同的驱动程序实现了其中不同的部分,有时甚至是不兼容的部分。此文件是试图记录现有用法并允许将来的驱动程序编写者将其用作参考。

标题为“ 谁在刷新Linux中的硬件监视程序 ”的SO Q&A ,涵盖Linux内核与硬件监视程序计时器之间的链接。

看门狗包怎么样?

RPM中的描述使这一点非常清楚,IMO。该watchdog守护进程可以作为一个软件看门狗或者可以与硬件实现交互。

RPM描述摘录

看门狗程序可以用作功能强大的软件看门狗守护程序,也可以与硬件看门狗设备(例如与驻留的基板管理控制器(BMC)的IPMI硬件看门狗驱动程序接口)交替使用。看门狗会定期写入/ dev / watchdog;可以通过看门狗sysconfig文件中的设置来配置写入/ dev / watchdog之间的时间间隔。

此配置文件还用于将监视程序设置为硬件监视程序,而不是其默认软件监视程序操作。在这两种情况下,如果设备是打开的,但未在配置的时间段内写入设备,则看门狗定时器到期将触发计算机重启。作为软件看门狗运行时,重新启动的能力将取决于计算机的状态和中断。

当作为硬件监视程序运行时,机器将经历由BMC启动的硬重置(或配置为在监视程序计时器到期时执行的任何操作)。


谢谢,内核文档很有用。澄清一下,这是否意味着内核拥有看门狗,而用户(我)却不拥有看门狗,因为我没有安装看门狗?
2014年

1
@QuestionOverflow-据我了解,系统提供了看门狗功能(本质上是硬件)。因此,内核拥有它并管理该硬件,就像管理系统中任何其他硬件一样。您是用户通过内核与之交互,但不以任何正式身份拥有它。您只是它的消费者。WDT用作内置保护,以防运行的软件以无法预料的方式将硬件与硬件捆绑在一起。它们是使系统具有恢复能力的安全机制。
slm

我明白了。但是,如果我安装了看门狗,似乎可以直接与它进行交互。似乎有一个配置文件/etc/watchdog.conf可以直接更改其行为。
2014年

@QuestionOverflow-看一下RPM中的看门狗描述。它说明了一切。我将它添加到我A.
SLM
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.