WATCHDOG(4) OpenBSD Programmer's Manual WATCHDOG(4) NAME watchdog - hardware timers/counters for quick crash recovery DESCRIPTION Hardware watchdog timers are devices that reboot the machine when it hangs. The kernel continually resets the watchdog clock on a regular ba- sis. Thus, if the kernel halts, the clock will time out and reset the machine. Some watchdog timers may be configured to be reset from user- land, causing a reboot if process scheduling fails. A few watchdog drivers are supported, and most support timeout configura- tion via sysctl(8) under the kern.watchdog name: kern.watchdog.auto Automatically reset (`tickle') the watchdog timer. kern.watchdog.period The timeout in seconds. Setting it to zero disables the watchdog timer. In situations where the machine provides vital services which are not handled completely in kernel space, e.g. mail exchange, it may be desir- able to reboot the machine if process scheduling fails. This is done by setting kern.watchdog.auto to zero and running a process which repeatedly sets kern.watchdog.period to the desired timeout value. Then, if process scheduling fails, the process resetting the timer will not be run, lead- ing to the machine being rebooted. Watchdog timers should be used in high-availability environments where getting machines up and running quickly after a crash is more important than determining the cause of the crash. A watchdog timer enables a crashed machine to autonomously attempt to recover quickly after a system failure. Note that this also means that it is unwise to combine watchdog timers with ddb(4) since the latter may prevent the former from resetting the watchdog timeout before it expires. This means that the machine will be rebooted before any debugging can be done. SEE ALSO ddb(4), elansc(4), geodesc(4), wdt(4), config(8), sysctl(8) BUGS For systems with multiple watchdog timers available, only a single one can be used at a time. There is currently no way of selecting which de- vice is used; the first discovered by the kernel is selected. OpenBSD 3.8 December 16, 2004 1