FreeBSD Manual Pages
WATCHDOGD(8) System Manager's Manual WATCHDOGD(8) NAME watchdogd -- watchdog daemon SYNOPSIS watchdogd [-dnSw] [--debug] [--softtimeout] [--softtimeout-action action] [--pretimeout timeout] [--pretimeout-action action] [-e cmd] [-I file] [-s sleep] [-t timeout] [-T script_timeout] [-x exit_timeout] DESCRIPTION The watchdogd utility interfaces with the kernel's watchdog facility to ensure that the system is in a working state. If watchdogd is unable to interface with the kernel over a specific timeout, the kernel will take actions to assist in debugging or restarting the computer. If -e cmd is specified, watchdogd will attempt to execute this command with system(3), and only if the command returns with a zero exit code will the watchdog be reset. If -e cmd is not specified, the daemon will perform a trivial file system check instead. The -n argument 'dry-run' will cause watchdog not to arm the system watchdog and instead only run the watchdog function and report on fail- ures. This is useful for developing new watchdogd scripts as the sys- tem will not reboot if there are problems with the script. The -s sleep argument can be used to control the sleep period between each execution of the check and defaults to 10 seconds. The -t timeout specifies the desired timeout period in seconds. The default timeout is 128 seconds. One possible circumstance which will cause a watchdog timeout is an in- terrupt storm. If this occurs, watchdogd will no longer execute and thus the kernel's watchdog routines will take action after a config- urable timeout. The -T script_timeout specifies the threshold (in seconds) at which the watchdogd will complain that its script has run for too long. If unset script_timeout defaults to the value specified by the -s sleep option. The -x exit_timeout argument is the timeout period (in seconds) to leave in effect when the program exits. Using -x with a non-zero value protects against lockup during a reboot by triggering a hardware reset if the software reboot doesn't complete before the given timeout ex- pires. Upon receiving the SIGTERM or SIGINT signals, watchdogd will terminate, after first instructing the kernel to either disable the timeout or re- set it to the value given by -x exit_timeout. The watchdogd utility recognizes the following runtime options: -I file Write the process ID of the watchdogd utility in the specified file. -d --debug Do not fork. When this option is spec- ified, watchdogd will not fork into the background at startup. -S Do not send a message to the system logger when the watchdog command takes longer than expected to execute. The default behaviour is to log a warning via the system logger with the LOG_DAE- MON facility, and to output a warning to standard error. -w Complain when the watchdog script takes too long. This flag will cause watch- dogd to complain when the amount of time to execute the watchdog script ex- ceeds the threshold of 'sleep' option. --pretimeout timeout Set a "pretimeout" watchdog. At "time- out" seconds before the watchdog will fire attempt an action. The action is set by the --pretimeout-action flag. The default is just to log a message (WD_SOFT_LOG) via log(9). --pretimeout-action action Set the timeout action for the pretime- out. See the section "Timeout Actions". --softtimeout Instead of arming the various hardware watchdogs, only use a basic software watchdog. The default action is just to log(9) a message (WD_SOFT_LOG). --softtimeout-action action Set the timeout action for the soft- timeout. See the section "Timeout Actions". Timeout Actions The following timeout actions are available via the --pretimeout-action and --softtimeout-action flags: panic Call panic(9) when the timeout is reached. ddb Enter the kernel debugger via kdb_enter(9) when the timeout is reached. log Log a message using log(9) when the timeout is reached. printf call the kernel printf(9) to display a message to the console and dmesg(8) buffer. Actions can be combined in a comma separated list as so: log,printf which would both printf(9) and log(9) which will send messages both to dmesg(8) and the kernel log(4) device for syslogd(8). FILES /var/run/watchdogd.pid EXAMPLES Debugging watchdogd and/or your watchdog script. This is a useful recipe for debugging watchdogd and your watchdog script. (Note that ^C works oddly because watchdogd calls system(3) so the first ^C will terminate the "sleep" command.) Explanation of options used: 1. Set Debug on (--debug) 2. Set the watchdog to trip at 30 seconds. (-t 30) 3. Use of a softtimeout: 3.1. Use a softtimeout (do not arm the hardware watchdog). (--softtimeout) 3.2. Set the softtimeout action to do both kernel printf(9) and log(9) when it trips. (--soft- timeout-action log,printf) 4. Use of a pre-timeout: 4.1. Set a pre-timeout of 15 seconds (this will later trigger a panic/dump). (--pretimeout 15) 4.2. Set the action to also kernel printf(9) and log(9) when it trips. (--pretimeout-action log,printf) 5. Use of a script: 5.1. Run "sleep 60" as a shell command that acts as the watchdog (-e 'sleep 60') 5.2. Warn us when the script takes longer than 1 second to run (-w) watchdogd --debug -t 30 \ --softtimeout --softtimeout-action log,printf \ --pretimeout 15 --pretimeout-action log,printf \ -e 'sleep 60' -w Production use of example 1. Set hard timeout to 120 seconds (-t 120) 2. Set a panic to happen at 60 seconds (to trigger a crash(8) for dump analysis): 2.1. Use of pre-timeout (--pretimeout 60) 2.2. Specify pre-timeout action (--pretimeout-action log,printf,panic ) 3. Use of a script: 3.1. Run your script (-e '/path/to/your/script 60') 3.2. Log if your script takes a longer than 15 sec- onds to run time. (-w -T 15) watchdogd -t 120 \ --pretimeout 60 --pretimeout-action log,printf,panic \ -e '/path/to/your/script 60' -w -T 15 SEE ALSO watchdog(4), watchdog(8), watchdog(9) HISTORY The watchdogd utility appeared in FreeBSD 5.1. AUTHORS The watchdogd utility and manual page were written by Sean Kelly <smkelly@FreeBSD.org> and Poul-Henning Kamp <phk@FreeBSD.org>. Some contributions made by Jeff Roberson <jeff@FreeBSD.org>. The pretimeout and softtimeout action system was added by Alfred Perlstein <alfred@freebsd.org>. FreeBSD 14.3 May 11, 2015 WATCHDOGD(8)
NAME | SYNOPSIS | DESCRIPTION | Timeout Actions | FILES | EXAMPLES | SEE ALSO | HISTORY | AUTHORS
Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=watchdogd&sektion=8&manpath=FreeBSD+14.3-RELEASE+and+Ports>