sd_watchdog_enabled — Check whether the service manager expects watchdog keep-alive notifications from a service
#include <systemd/sd-daemon.h>
| int sd_watchdog_enabled( | int unset_environment, | 
| uint64_t *usec ); | 
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.
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.
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.
$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.