bmc-watchdog(8)
π
bmc-watchdog(8) β BMC watchdog timer daemon and control utility
okay bestie, welcome to the System Commands corner π this is the bmc-watchdog page, and it is literally about controlling a Baseboard Management Controller (BMC) watchdog timer. no cap, itβs useful, itβs a little niche, and itβs giving βsysadmin main character energyβ π₯
β¨ NAME β¨
bmc-watchdog β BMC watchdog timer daemon and control utility π
π¦ SYNOPSIS π¦
bmc-watchdog command [OPTION...] [COMMAND_OPTIONS...]
πΈ DESCRIPTION πΈ
bmc-watchdog controls a Baseboard Management Controller (BMC) watchdog timer. The bmc-watchdog tool typically executes as a cronjob or daemon to manage the watchdog timer. A user must be root in order to run bmc-watchdog β like, actual root privileges, not just βI clicked yes on the popupβ energy π
Listed below are bmc-watchdog details, option details, examples, and known issues. For a general introduction to FreeIPMI please see freeipmi(7). β¨
π BMC WATCHDOG DETAILS π
A BMC watchdog timer is part of the Intelligent Platform Management Interface (IPMI) specification and is only available to BMCs that are compliant with IPMI. When a BMC watchdog timer is started, it begins counting down to zero from some positive number of seconds. When the timer hits zero, the timer will execute a pre-configured pre-timeout interrupt and/or timeout action. π
In order to stop the pre-timeout interrupt or timeout action from being executed, the watchdog timer must be periodically reset back to its initial beginning value. periodt.
The BMC watchdog timer automatically stops itself when the machine is rebooted. Therefore, when a machine is brought up, the BMC watchdog timer must be setup again before it can be used. it does not remember its little countdown era after a reboot π«Ά
Typically, a BMC watchdog timer is used to automatically reset a machine that has crashed. When the operating system first starts up, the BMC timer is set to its initial countdown value. At periodic intervals, when the operating system is functioning properly, the watchdog timer can be reset by the OS or a userspace program. Thus, the timer never counts down to zero. When the system crashes, the timer cannot be reset by the OS or userspace program. Eventually, the timer will countdown to zero and reset the machine. iconic behavior, honestly π
See EXAMPLES below for examples of how bmc-watchdog is commonly used. π
π COMMANDS π
The following commands are available to bmc-watchdog.
-s,--setβ Set BMC Watchdog Configuration. BMC watchdog timer configuration values can be set using the set command options listed below under SET OPTIONS. If a particular configuration parameter is not specified on the command line, the current configuration of that parameter will not be changed. lowkey respectful of your existing setup π-g,--getβ Get BMC Watchdog Configuration and State. The current configuration and state is printed to standard output.-r,--resetβ Reset BMC Watchdog Timer.-t,--startβ Start BMC Watchdog Timer. Does nothing if the timer is currently running. Identical to--resetcommand when the timer is stopped with the exception of the start command options listed below under START OPTIONS.-y,--stopβ Stop BMC Watchdog Timer. Stops the current timer.-c,--clearβ Clear BMC Watchdog Configuration. Clears all configuration values for the watchdog timer, except for timer use, which is kept at its current value.-d,--daemonβ Runbmc-watchdogas a daemon. Configurable BMC watchdog timer options are listed below under DAEMON OPTIONS. The configuration values are set once, then the daemon will reset the timer at specified periodic intervals. The daemon can be stopped using the--stopcommand,--clearcommand, or by setting thestop_timerflag on the--setcommand.
β GENERAL OPTIONS β
The following options are general options for configuring IPMI communication and executing general tool commands. These options are generic and can be used by any command.
-D IPMIDRIVER,--driver-type=IPMIDRIVERβ Specify the driver type to use instead of doing an auto selection. The currently available inband drivers areKCS,SSIF,OPENIPMI,SUNBMC, andINTELDCMI.--disable-auto-probeβ Do not probe in-band IPMI devices for default settings.--driver-address=DRIVER-ADDRESSβ Specify the in-band driver address to be used instead of the probed value.DRIVER-ADDRESSshould be prefixed with"0x"for a hex value and'0'for an octal value.--driver-device=DEVICEβ Specify the in-band driver device path to be used instead of the probed path.--register-spacing=REGISTER-SPACINGβ Specify the in-band driver register spacing instead of the probed value. Argument is in bytes (i.e. 32bit register spacing = 4).--target-channel-number=CHANNEL-NUMBERβ Specify the in-band driver target channel number to send IPMI requests to.--target-slave-address=SLAVE-ADDRESSβ Specify the in-band driver target slave number to send IPMI requests to.-v,--verbose-loggingβ Increase verbosity of logging.-n,--no-loggingβ Turns off all logging done bybmc-watchdog.--config-file=FILEβ Specify an alternate configuration file.-W WORKAROUNDS,--workaround-flags=WORKAROUNDSβ Specify workarounds to vendor compliance issues. Multiple workarounds can be specified separated by commas. A special command line flag of"none", will indicate no workarounds (may be useful for overriding configured defaults). See WORKAROUNDS below for a list of available workarounds.--debugβ Turn on debugging.-?,--helpβ Output a help list and exit.--usageβ Output a usage message and exit.-V,--versionβ Output the program version and exit.
π SET OPTIONS π
The following options can be used by the set command to set or clear various BMC watchdog configuration parameters.
-u INT,--timer-use=INTβ Set timer use. The timer use value can be set to one of the following:1= BIOS FRB2,2= BIOS POST,3= OS_LOAD,4= SMS OS,5= OEM.-m INT,--stop-timer=INTβ Set Stop Timer Flag. A flag value of0stops the current BMC watchdog timer. A value of1doesn't turn off the current watchdog timer.-l INT,--log=INTβ Set Log Flag. A flag value of0turns logging on. A value of1turns logging off.-a INT,--timeout-action=INTβ Set timeout action. The timeout action can be set to one of the following:0= No action,1= Hard Reset,2= Power Down,3= Power Cycle.-p INT,--pre-timeout-interrupt=INTβ Set pre-timeout interrupt. The pre timeout interrupt can be set to one of the following:0= None,1= SMI,2= NMI,3= Messaging Interrupt.-z SECONDS,--pre-timeout-interval=SECONDSβ Set pre-timeout interval in seconds.-F,--clear-bios-frb2β Clear BIOS FRB2 Timer Use Flag.-P,--clear-bios-postβ Clear BIOS POST Timer Use Flag.-L,--clear-os-loadβ Clear OS Load Timer Use Flag.-S,--clear-sms-osβ Clear SMS/OS Timer Use Flag.-O,--clear-oemβ Clear OEM Timer Use Flag.-i SECONDS,--initial-countdown=SECONDSβ Set initial countdown in seconds.-w,--start-after-setβ Start timer after set command if timer is stopped. This is typically used whenbmc-watchdogis used as acronjob. This can be used to automatically start the timer after it has been set the first time.-x,--reset-after-setβ Reset timer after set command if timer is running.-j,--start-if-stoppedβ Don't execute set command if timer is stopped, just start timer.-k,--reset-if-runningβ Don't execute set command if timer is running, just reset timer. This is typically used whenbmc-watchdogis used as acronjob. This can be used to reset the timer after it has been initially started.
π§ START OPTIONS π§
The following options can be used by the start command.
-G INT,--gratuitous-arp=INTβ Suspend or don't suspend gratuitous ARPs while the BMC timer is running. A flag value of1suspends gratuitous ARPs. A value of0will not suspend gratuitous ARPs. If this option is not specified, gratuitous ARPs will not be suspended.-A INT,--arp-response=INTβ Suspend or don't suspend BMC-generated ARP responses while the BMC timer is running. A flag value of1suspends ARP responses. A value of0will not suspend ARP responses. If this option is not specified, ARP responses will not be suspended.
π DAEMON OPTIONS π
The following options can be used by the daemon command to set the initial BMC watchdog configuration parameters.
-u INT,--timer-use=INTβ Set timer use. The timer use value can be set to one of the following:1= BIOS FRB2,2= BIOS POST,3= OS_LOAD,4= SMS OS,5= OEM.-l INT,--log=INTβ Set Log Flag. A flag value of0turns logging on. A value of1turns logging off.-a INT,--timeout-action=INTβ Set timeout action. The timeout action can be set to one of the following:0= No action,1= Hard Reset,2= Power Down,3= Power Cycle.-p INT,--pre-timeout-interrupt=INTβ Set pre-timeout interrupt. The pre timeout interrupt can be set to one of the following:0= None,1= SMI,2= NMI,3= Messaging Interrupt.-z SECONDS,--pre-timeout-interval=SECONDSβ Set pre-timeout interval in seconds.-F,--clear-bios-frb2β Clear BIOS FRB2 Timer Use Flag.-P,--clear-bios-postβ Clear BIOS POST Timer Use Flag.-L,--clear-os-loadβ Clear OS Load Timer Use Flag.-S,--clear-sms-osβ Clear SMS/OS Timer Use Flag.-O,--clear-oemβ Clear OEM Timer Use Flag.-i SECONDS,--initial-countdown=SECONDSβ Set initial countdown in seconds.-G INT,--gratuitous-arp=INTβ Suspend or don't suspend gratuitous ARPs while the BMC timer is running. A flag value of1suspends gratuitous ARPs. A value of0will not suspend gratuitous ARPs. If this option is not specified, gratuitous ARPs will not be suspended.-A INT,--arp-response=INTβ Suspend or don't suspend BMC-generated ARP responses while the BMC timer is running. A flag value of1suspends ARP responses. A value of0will not suspend ARP responses. If this option is not specified, ARP responses will not be suspended.-e SECONDS,--reset-period=SECONDSβ Time interval to wait before resetting timer. The default is60seconds.
π ERRORS π
Errors are logged to syslog.
π οΈ WORKAROUNDS π οΈ
Okay bestie, so here's the situation: literally so many vendors are out here implementing their own IPMI solutions, and some of them implement their IPMI protocols incorrectly. Not naming names (we're naming names below). So here's the rundown of the workarounds we currently have for the compliance issues we've found. Where we could, we made the workarounds transparent so you don't even have to think about them. But some of them? You gotta ask nicely, via the -W option. π§
The hardware listed below may only indicate the hardware that a problem was discovered on. Newer versions of hardware may fix the problems indicated below. Similar machines from vendors may or may not exhibit the same problems. And here's the tea: different vendors may license their firmware from the same IPMI firmware developer, so it may be worthwhile to try workarounds listed below even if your motherboard is not listed. iykyk π
If you believe your hardware has an additional compliance issue that needs a workaround to be implemented, please contact the FreeIPMI maintainers on <freeipmi-users@gnu.org> or <freeipmi-devel@gnu.org>. They want to hear from you fr fr π«Ά
assumeioβ this workaround flag will assume inband interfaces communicate with system I/O rather than being memory-mapped. This will work around systems that report invalid base addresses. Those hitting this issue may see"device not supported"or"could not find inband device"errors. Issue observed on HP ProLiant DL145 G1. πspinpollβ this workaround flag will inform some inband drivers (most notably the KCS driver) to spin while polling rather than putting the process to sleep. This may significantly improve the wall clock running time of tools, because an operating system scheduler's granularity may be much larger than the time it takes to perform a single IPMI message transaction. But lowkey there's a tradeoff: by spinning, your system may be performing less useful work by not contexting out the tool for a more useful task. πignorestateflagβ this workaround option will ignore the BMC timer state flag (indicating if the timer is running or stopped) when running in daemon mode. On some BMCs, the flag is broken and will never report that a BMC timer is running, even if it is. The workaround will take notice of changes in the countdown seconds to determine if a timer is running or stopped. With this type of implementation, thereset-periodmust be large enough to ensure minor fluctuations in the countdown will not affect the workaround. And heads up β due to the implementation of this workaround, if another process stops the watchdog timer, it may be detectable. This option is confirmed to work around compliances issues on Sun x4100, x4200, and x4500. π
π¬ EXAMPLES π¬
Okay so picture this: you want a bmc-watchdog daemon that resets the machine after 15 minutes (900 seconds) if the OS has crashed. Obsessed with the drama. Here's the whole vibe:
bmc-watchdog -d -u 4 -p 0 -a 1 -i 900
That's it. That's the whole slay. β¨
π©Ί DIAGNOSTICS π©Ί
Upon successful execution, exit status is 0. On error, exit status is 1. Very simple, very demure. πΈ
π KNOWN ISSUES π
Not everything is perfect, bestie:
Bmc-watchdogmay fail to reset the watchdog timer if it is not scheduled properly. It is always recommended thatbmc-watchdogbe executed with a high scheduling priority. Don't skip this one, fr fr. β°- On some machines, the hardware based SMI Handler may disable a processor after a watchdog timer timeout if the timer use is set to something other than SMS/OS. π
π REPORTING BUGS π
Report bugs to <freeipmi-users@gnu.org> or <freeipmi-devel@gnu.org>. Spill the tea, they can take it π«Ά
Β©οΈ COPYRIGHT Β©οΈ
Copyright (C) 2007-2015 Lawrence Livermore National Security, LLC.
Copyright (C) 2004-2007 The Regents of the University of California.
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. π
π SEE ALSO π
That's the whole page, bestie β go forth and watchdog responsibly π
This was bmc-watchdog version 1.6.20, dated 2026-10-05 β icon behavior only, no notes πβ¨
π¦ where this page comes from
- arch rolling: freeipmi 1.6.20-1 Β· GPL-3.0-or-later
- centos-stream 10: freeipmi-bmc-watchdog 1.6.20-1.el10 Β· GPL-3.0-or-later
- centos-stream 9: freeipmi-bmc-watchdog 1.6.20-1.el9 Β· GPLv3+
- Copyright (C) 2007-2015 Lawrence Livermore National Security, LLC
- Copyright (C) 2004-2007 The Regents of the University of California
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms