watchdog questions

Brad Waite freebsd at
Tue May 5 21:07:15 UTC 2009

I need some help understanding FreeBSD's kernel watchdog functionality.  I've
been reading up, and here's what I think I understand (correct me if I'm wrong):

If a watchdog timer is set in the kernel and not reset or disabled within the
time given, the kernel reboots the system.

'watchdog -t <n>' starts a watchdog for n seconds.  Runing watchdog(8) again in
<n seconds, resets the timer.  If 'watchdog -t 0' is run, the kernel disables
the watchdog.

watchdogd(8) either runs stat(2) on /etc, or a user-defined cmd (with -e), and
resets the watchdog only on a zero exit code.

There's a few things that aren't clear, though:

How many watchdog timers can be enabled at a given time?  If more than one,
does a single 'watchdog -t 0' disable all timers?

Upon timer expiration, can the kernel be configured to do anything OTHER than

Is it the general idea that watchdog(8) would be run in a script, making sure
the script doesn't hang?  And that watchdogd(8) is run to ensure the entire
system doesn't hang?

More information about the freebsd-questions mailing list