sd_watchdog_enabled (3) - Linux Manuals
sd_watchdog_enabled: Check whether the service manager expects watchdog keep-alive notifications from a service
NAME
sd_watchdog_enabled - Check whether the service manager expects watchdog keep-alive notifications from a service
SYNOPSIS
#include <systemd/sd-daemon.h>
-
int sd_watchdog_enabled(int
unset_environment, uint64_t * usec);
DESCRIPTION
sd_watchdog_enabled()
If the $WATCHDOG_USEC environment variable is set, and the $WATCHDOG_PID variable is unset or set to the PID of the current process, the service manager expects notifications from this process. The manager will usually terminate a service when it does not get a notification message within the specified time after startup and after each previous message. It is recommended that a daemon sends a keep-alive notification message to the service manager every half of the time returned here. Notification messages may be sent with sd_notify(3) with a message string of "WATCHDOG=1".
If the unset_environment parameter is non-zero, sd_watchdog_enabled() will unset the $WATCHDOG_USEC and $WATCHDOG_PID environment variables before returning (regardless of whether the function call itself succeeded or not). Those variables are no longer inherited by child processes. Further calls to sd_watchdog_enabled() will also return with zero.
If the usec parameter is non-NULL, sd_watchdog_enabled() will write the timeout in µs for the watchdog logic to it.
To enable service supervision with the watchdog logic, use WatchdogSec= in service files. See systemd.service(5) for details.
RETURN VALUE
On failure, this call returns a negative errno-style error code. If the service manager expects watchdog keep-alive notification messages to be sent, > 0 is returned, otherwise 0 is returned. Only if the return value is > 0, the usec parameter is valid after the call.
NOTES
These APIs are implemented as a shared library, which can be compiled and linked to with the
libsystemd
Internally, this functions parses the
$WATCHDOG_PID
and
$WATCHDOG_USEC
environment variable. The call will ignore these variables if
$WATCHDOG_PID
does not contain the PID of the current process, under the assumption that in that case, the variables were set for a different process further up the process tree.
$WATCHDOG_PID
$WATCHDOG_USEC
The watchdog functionality and the
$WATCHDOG_USEC
variable were added in systemd-41.
sd_watchdog_enabled()
function was added in systemd-209. Since that version the
$WATCHDOG_PID
variable is also set.
ENVIRONMENT
HISTORY