Watchdog is a daemon that checks if your system is still working. If
programs in user space are not longer executed it will reboot the system.
However, this will not always work.

From the kernel:

>	Watchdog Timer Interfaces For The Linux Operating System
>
>		Alan Cox <alan@lxorguk.ukuu.org.uk>
>
>	    Custom Linux Driver And Program Development
>
>[...]
>
>All four interfaces provide /dev/watchdog, which when open must be written
>to within a minute or the machine will reboot. Each write delays the reboot
>time another minute. In the case of the software watchdog the ability to 
>reboot will depend on the state of the machines and interrupts. The hardware
>boards physically pull the machine down off their own onboard timers and
>will reboot from almost anything.

This tool proved very useful for me, because I always run the latest kernel
and the latest libc release, but rely on the machine to be up and running
for email.

Note, that you have to enable the software watchdog driver in your kernel
for the program to be able to hard reset the system unless you have a
hardware watchdog of course. Make sure you don't compile watchdog with a
different timer margin than the kernel driver.

As of version 4.0 watchdog is able to make itself a real-time application.
It will lock all its pages in memory and set itīs scheduler to round-robin.
This will take up to 900 pages of memory but guarantees you that watchdog
will get its share of processor time. If you ever experienced a hard reset
just because watchdog wasnīt scheduled for a minute, you will probably have
no problem with the 900 pages which is not so much anyway.

Of course this is not needed for machines running on low load.

Don't be surprised if you see any zombie processes laying around. This is
normal. They will be removed the next time watchdog wakes up. Of course a
new zombie is created then, too. This zombie process is a result of the
process table check.

Michael
meskes@debian.org

