Provided by: libsystemd-dev_245.4-4ubuntu3.24_amd64 bug

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() may be called by a service to detect whether the service manager
       expects regular keep-alive watchdog notification events from it, and the timeout after
       which the manager will act on the service if it did not get such a notification.

       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.

       Use sd_event_set_watchdog(3) to enable automatic watchdog support in sd-event(3)-based
       event loops.

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 pkg-config(1) file.

       Internally, this function 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.

ENVIRONMENT

       $WATCHDOG_PID
           Set by the system manager for supervised process for which watchdog support is
           enabled, and contains the PID of that process. See above for details.

       $WATCHDOG_USEC
           Set by the system manager for supervised process for which watchdog support is
           enabled, and contains the watchdog timeout in µs. See above for details.

SEE ALSO

       systemd(1), sd-daemon(3), daemon(7), systemd.service(5), sd_notify(3),
       sd_event_set_watchdog(3)