sd_watchdog_enabled

SD_WATCHDOG_ENABLED(3)         sd_watchdog_enabled        SD_WATCHDOG_ENABLED(3)



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)



systemd 247                                               SD_WATCHDOG_ENABLED(3)