WATCHDOG.CONF(5)
β¨ WATCHDOG.CONF(5) β¨ β File Formats Manual πΆπ
okay bestie, buckle up, we're doing the watchdog.conf manual page and honestly? it's giving essential reading. this is the config file for the Linux watchdog daemon and it is lowkey the most protective bestie your machine will ever have π«Ά
πΈ NAME πΈ
watchdog.conf β the configuration file for the watchdog daemon, no cap π
π DESCRIPTION π
bestie, this file holds all the configuration options for the Linux watchdog daemon. every single one. so here's the vibe:
- each option has to live on a line all by itself (one option per line, she's not sharing)
- comments start with
# - blanks are ignored β except after the
=sign - an empty text after the
=sign disables the feature, as long as that makes sense π
β¨ OPTIONS β¨
interval = <interval>β sets the highest possible interval between two writes to the watchdog device. the device gets triggered after each check no matter how long that check took. once all checks are done, watchdog goes to sleep for a full cycle of<interval>seconds. default is1second. the kernel drivers typically expect a write command every minute, otherwise the system gets rebooted π so an interval of more than a minute can only be used with the force command-line option[--force | -f]. periodt.logtick = <logtick>β if you turn on verbose logging, a message gets written into the syslog or a logfile. cute, yes, but it is not necessary to get a message every single interval β that really fills up disk and eats CPU.logticklets you adjust how many intervals get skipped before a log message is written. so if you uselogtick = 60andinterval = 10, only every 10 minutes (600seconds) does a message get written. this may make the exact time of a crash harder to find, but it greatly reduces disk usage and administrator nerves when you're hunting for one particular syslog entry in between all the watchdog messages πmax-load-1 = <load1>β sets the max allowed load average for a 1 minute span. once this load average is reached, the system is rebooted π default value is0, which means the load average check is disabled. be careful not to set this too low! to set a value less than the predefined minimal value of2, you have to use the-fcommand line option.max-load-5 = <load5>β sets the max allowed load average for a 5 minute span. once this load average is reached, the system is rebooted. default value is3/4*max-load-1. be careful not to set this parameter too low. to set a value less than the predefined minimal value of2, you have to use the-fcommand line option.max-load-15 = <load15>β sets the max allowed load average for a 15 minute span. once this load average is reached, the system is rebooted. default value is1/2*max-load-1. be careful not to set this parameter too low. to set a value less than the predefined minimal value of2, you have to use the-fcommand line option.min-memory = <minpage>β sets the minimal amount of memory that has to stay free. note that this is in memory pages (4kBon x86). default value is0pages, which means this test is disabled. the page size is taken from the system include files. the usable memory is computed fromMemFree + Buffers + Cached, since buffer and cache use typically expand to use most free memory but the kernel will reclaim this as needed.
NOTE: if this measure gets below a few tens of MB, then the system will page swap aggressively and have poorer file system performance due to the lack of caching. π¬
this is a 'passive' test and works by reading /proc/meminfo.
allocatable-memory = <minpage>β sets the minimum amount of allocatable memory available on the system. note that this is in pages. default value is0pages, which means the test is disabled. as withmin-memory, the page size is taken from the system include files. this is an 'active' test and it works by attempting to memory-map a block of the configured size. πmax-swap = <maxpage>β sets the maximum amount of swap use. note that this is in memory pages (4kBon x86). default value is0pages, which means this test is disabled. often this should be a large portion of available swap, but remember that paging 1GB of swap can take several/tens of seconds π this is a 'passive' test and works by reading/proc/meminfo.watchdog-device = <device>β sets the watchdog device name, typically/dev/watchdog. default is to disable keep alive support. this should be tested by running the daemon from the command line before configuring it to start automatically on booting. fr fr, test it first.watchdog-refresh-use-settimeout = <auto|yes|no>β refresh the watchdog timer by setting its timeout instead of using a normal watchdog refresh operation. might help if your watchdog trips by itself when the first timeout interval elapses. default is'auto'for IT87 fix-up, but this can be disabled with'no'or forced for other modules with'yes'. iykyk πwatchdog-refresh-ignore-errors = <yes|no>β ignore errors reported by writing to the watchdog device. typically this is used for systems that have broken implementations of the IPMI driver, to avoid a reboot loop. π«Άwatchdog-timeout = <timeout>β set the watchdog device timeout during startup. if not set, a default is used that should be set to the kernel timer margin at compile time.temperature-sensor = <temp-virtual-file>β set the temperature sensor name. this is normally a 'virtual file' under/sysand it contains the temperature in milli-Celsius. usually these are generated by the sensors package, but take care, as device enumeration may not be fixed π default is to disable temperature checking. multiple sensors can be used by having repeatedtemperature-sensorentries. due to the enumeration problem, any missing temp sensor is simply ignored and not treated as a reboot trigger.max-temperature = <temp>β set the maximal allowed temperature in Celsius. once this temperature is reached, the system is stopped π₯΅ default value is90C. watchdog will issue warnings once the temperature increases to90%,95%and98%of this temperature.temp-power-off = <yes|no>β set the watchdog action on overheating. theyesoption (default) powers the machine off; thenooption halts the machine and allows a Ctrl-Alt-Del reboot.file = <filename>β set the file name for file mode. this option can be given as often as you like, to check several files. πchange = <mtime>β set the change interval time for file mode. this option always belongs to the active filename β that is, when finding achange =line, watchdog assumes it belongs to the most recently readfile =line. they don't necessarily have to follow each other directly. but you cannot specify achange =before afile =. the default is to only stat the file and not look for changes. using this feature to monitor changes in/var/log/messagesmight require some special syslog daemon configuration, e.g. rsyslog needs"$ActionWriteAllMarkMessages on"to be set to make sure the marks are written no matter what. πpidfile = <pidfilename>β set the pidfile name for daemon test mode. this option can be given as often as you like, to check several daemons, assuming they write their post-forking PID to the specified files.ping = <ip-addr>β set the IPv4 address for ping mode. this option can be used more than once, to check different connections. π¦ping-count = <ping-per-interval>β set the number of ping attempts in each'interval'of time. default is3and it completes on the first successful ping. β¨interface = <if-name>β set the interface name for network mode. this option can be used more than once, to check different interfaces. note it is only possible to check physical interfaces, and not aliased IP interfaces. π«test-binary = <testbin>β execute the given binary to do some user defined tests.test-timeout = <timeout in seconds>β user defined tests may only run for<timeout>seconds. set to0for unlimited.repair-binary = <repbin>β execute the given binary in case of a problem, instead of shutting down the system. π οΈrepair-timeout = <timeout in seconds>β the repair command may only run for<timeout>seconds. set to0for'unlimited', but note that the hardware timer is not refreshed in this case, so the system will hard-reset at some point. πretry-timeout = <timeout in seconds>β allow most error conditions to persist for<timeout>seconds. set to0for immediate action (like softboot behaviour).repair-maximum = <count>β this allows no more than<count>repair attempts against a given fault that report success (i.e. return0), but fail to clear the fault, before a reboot is initiated anyway. if set to zero, then a repairable fault can always be blocked by a repair program reporting success (the previous daemon behaviour).softboot-option = <yes|no>β this acts like the-b/--softbootcommand line and simply sets the retry timeout to zero.admin = <mail-address>β email address to send admin mail to. that is, who shall be notified that the machine is being halted or rebooted. default is'root'. if you want to disable notification via email, just setadminto an empty string. π§realtime = <yes|no>β if set toyes, watchdog will lock itself into memory so it is never swapped out. main character energy, honestly. πpriority = <schedule priority>β set the schedule priority for realtime mode, passed tosched_setscheduler().test-directory = <test directory>β set the directory to run user test/repair scripts. default is'/etc/watchdog.d'. see the Test Directory section inwatchdog(8)for more information. πlog-dir = <log directory>β set the log directory to capture the standard output and standard error fromrepair-binaryandtest-binaryexecution. default is'/var/log/watchdog'.sigterm-delay = <time in seconds>β set the time on shut down between first sendingSIGTERMto all processes, and then sendingSIGKILL. default is5seconds, which is generally enough, but systems with large databases or virtual machines might need longer. β³verbose = <level>β bestie this one overrides the--verbosecommand line option, like it said "move, i'm driving" π . And listen: verbose mode is generally only enabled for debugging, because it creates a lot of syslog chatter, so use this option with consideration, okay? Be mindful. Zero is "normal" operation (quiet) π, while1is typically used for debugging π. Values of2or more usually generate far too many messages. Like, unhinged amounts. You've been warned, babes.heartbeat-file = <filename>β for debugging, this lets a rolling set of status values be kept on disk π«β¨.heartbeat-stamps = <interval>β also for debugging, this sets the number of entries in the<heartbeat-file>π.log-killed-pids = <yes|no>β okay so this acts like enabling 'verbose' logging, but only for a system reboot, where it enables the logging of the PID values for all processes that are being killed π. In this case, the results are written to thekillall5.logfile in the log directory (if at all possible). It's intended for debugging cases where you would like to know what was running at the point the machine triggered the watchdog, but you don't want syslog filling up with the usual chatter of activity. iykyk β targeted tea, not a firehose πΈ.
π FILES π
/etc/watchdog.confβ the watchdog configuration file, the main character itself π./etc/watchdog.dβ a directory containing test-or-repair commands π§. See the Test Directory section inwatchdog(8)for more information.
π SEE ALSO π
watchdog(8)β go read her, she's iconic π«Ά
that's the whole page, bestie!! no cap, you now know watchdog.conf fr fr πβ¨
this page came from the 4th Berkeley Distribution, dated February 2019, and it's WATCHDOG.CONF(5) β so go forth and configure responsibly πππ¦
π¦ where this page comes from
- debian bookworm: watchdog 5.16-1+b2
- debian trixie: watchdog 5.16-1.1
- nixos 26.05: watchdog 5.16
- nixpkgs unstable: watchdog 5.16
- opensuse-leap 16.0: watchdog 5.16-bp160.1.6 Β· GPL-2.0-only
- opensuse-leap 16.0: watchdog 5.16-bp160.1.6 Β· GPL-2.0-only
- opensuse-leap 16.0: watchdog 5.16-bp160.1.6 Β· GPL-2.0-only
- opensuse-leap 16.0: watchdog 5.16-bp160.1.6 Β· GPL-2.0-only
- ubuntu jammy: watchdog 5.16-1
- ubuntu noble: watchdog 5.16-1
- ubuntu questing: watchdog 5.16-1.1
- ubuntu resolute: watchdog 5.16-1.2
- ubuntu stonking: watchdog 5.16-2 Β· GPL-2.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms