Skip to content

watchdogd v4.0

Latest
Compare
Choose a tag to compare
@github-actions github-actions released this 04 Jan 16:02
· 2 commits to master since this release

Breaking changes: the generic script monitor has new syntax, the
status files have moved, and the format has changed. Also, the
default value for safe-exit in the .conf file has been changed.

Changes

  • Support for multiple watchdog devices added, issue #26

  • The format of watchdogctl status and /run/watchdogd/status has
    been changed to JSON and includes more information about the currently
    running daemon and the capabilities of watchdog devices in use

  • The configure --with-$MONITOR=SEC flag has been changed to not
    take an argument (this was never used). To change the poll interval
    of a system monitor, use the configuration file

  • A new file system monitor: fsmon /var { ... }, multiple monitors,
    fsmon /path, are supported

  • A new temperature monitor: tempmon /path/to/sensor {...}. It
    supports multiple sensors, both thermal and hwmon type. See the
    documentation for details

  • The syntax for the generic monitor script has changed. This is a
    breaking change, everyone must update. New syntax:

      generic /path/to/montor-script.sh { ... }
    
  • The generic scripts monitor now supports running multiple scripts

  • Documentation of the libwdog supervisor API by Andreas Helbech Kleist

  • API docs at https://codedocs.xyz/troglobit/watchdogd/wdog_8h.html

  • State file location changed from /var/lib/ to /var/lib/misc/.
    This is the recommended location in the Linux FHS, and what most
    systems use. Both the default watchdogd.conf and documentation has
    been updated. Unless a file is specified by the user, the daemon will
    automatically relocate to the new location at runtime. If the new
    directory does not exist, the daemon will fall back to use the old
    path, if it exists, issue #36

  • The default watchdogd.conf now enables reset reason by default.
    This is a strong recommendation since it is then possible to trace
    the reset cause also for system monitors

  • Simplified README by splitting it into multiple files, some text even
    moved entirely to man pages instead

  • The status files cluttering up /run have been moved to their own
    subdirectory, /run/watchdogd. This includes the PID file, last boot
    status, and the socket for watchdogctl. The latter remains the
    recommended tool to query status and interact with the daemon

  • The configure script flags for enabling system monitors have been
    simplified. None of the monitors take an argument (poll seconds),
    this because that is configured in watchdogd.conf

Fixes

  • Fix #28: watchdogd crash in case "Label" or "Reset date" field in
    reset reason is empty. Found and fixed by Christian Theiss
  • Fix #30: replace Finit compile-time detection with runtime check, this
    allows synchronized reboot using watchdogd with Finit in Buildroot
  • Fix #39: generic monitoring script with runtime > 1 second cause
    system to reboot. Found and fixed by Senthil Nathan Thangaraj
  • Fix #41: calling custom supervisor script cause watchdogd to disable
    monitoring, regardless of script exit code.
  • Fix #43: watchdogctl clear, and wdog_reset_reason_clr() API, does
    not work. Regression introduced in v3.4.
  • The generic script plugin can now be disabled at runtime. Prior to
    this release, it was not possible when once enabled.
  • The label (cause) of the system monitor forcing a reset is now saved in
    the reset reason file. Previously only "forced reset" was the only
    message, which without persistent logs did not say much.