kumquat-buildroot/package/watchdogd/watchdogd.mk
Joachim Wiberg e694cc0a25 package/watchdogd: new package
This patch adds support for watchdogd, a watchdog daemon with built-in
process supervisor[1] as well as support for monitoring memory & file
descriptor leaks, and CPU load average.  When a monitored resource
reaches a high watermark, a warning message is logged and when critical
level is reached, the cause is saved and the system is rebooted.  On
reboot the reset cause can be retrieved to help locate the culprit.

Support for SysV init script in this patch, and systemd unit file is
installed from the one bundled with the package.  Both files supoort
additional command line options in /etc/default/watchdogd.

The Config.in is slightly big, but allows for disabling or adjusting
the poll interval for each resource monitor.

For more information, see https://github.com/troglobit/watchdogd

[1]: processes must have their main loop instrumented for supervision.

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
2021-10-27 22:10:37 +02:00

56 lines
1.7 KiB
Makefile

################################################################################
#
# watchdogd
#
################################################################################
WATCHDOGD_VERSION = 3.4
WATCHDOGD_SITE = https://github.com/troglobit/watchdogd/releases/download/$(WATCHDOGD_VERSION)
WATCHDOGD_LICENSE = ISC
WATCHDOGD_LICENSE_FILES = LICENSE
WATCHDOGD_CPE_ID_VENDOR = troglobit
WATCHDOGD_DEPENDENCIES = host-pkgconf libconfuse libite libuev
WATCHDOGD_CONF_OPTS = --disable-compat --disable-examples --disable-test-mode
ifneq ($(BR2_PACKAGE_WATCHDOGD_TEST_SUITE),y)
WATCHDOGD_CONF_OPTS += --disable-builtin-tests
else
WATCHDOGD_CONF_OPTS += --enable-builtin-tests
endif
ifeq ($(BR2_PACKAGE_WATCHDOGD_GENERIC_POLL),0)
WATCHDOGD_CONF_OPTS += --without-generic
else
WATCHDOGD_CONF_OPTS += --with-generic=$(BR2_PACKAGE_WATCHDOGD_GENERIC_POLL)
endif
ifeq ($(BR2_PACKAGE_WATCHDOGD_LOADAVG_POLL),0)
WATCHDOGD_CONF_OPTS += --without-loadavg
else
WATCHDOGD_CONF_OPTS += --with-loadavg=$(BR2_PACKAGE_WATCHDOGD_LOADAVG_POLL)
endif
ifeq ($(BR2_PACKAGE_WATCHDOGD_FILENR_POLL),0)
WATCHDOGD_CONF_OPTS += --without-filenr
else
WATCHDOGD_CONF_OPTS += --with-filenr=$(BR2_PACKAGE_WATCHDOGD_FILENR_POLL)
endif
ifeq ($(BR2_PACKAGE_WATCHDOGD_MEMINFO_POLL),0)
WATCHDOGD_CONF_OPTS += --without-meminfo
else
WATCHDOGD_CONF_OPTS += --with-meminfo=$(BR2_PACKAGE_WATCHDOGD_MEMINFO_POLL)
endif
define WATCHDOGD_INSTALL_INIT_SYSV
$(INSTALL) -D -m 0755 package/watchdogd/S01watchdogd \
$(TARGET_DIR)/etc/init.d/S01watchdogd
endef
define WATCHDOGD_INSTALL_INIT_SYSTEMD
$(INSTALL) -D -m 644 $(WATCHDOGD_SRCDIR)/watchdogd.service \
$(TARGET_DIR)/usr/lib/systemd/system/watchdogd.service
endef
$(eval $(autotools-package))