table of contents
other versions
- jessie 215-17+deb8u7
- jessie-backports 230-7~bpo8+2
- stretch 232-25+deb9u8
- testing 241-1
- stretch-backports 241-1~bpo9+1
- unstable 241-2
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 serviceSYNOPSIS¶
#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 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). Further calls to sd_watchdog_enabled() will then return with zero, but the variable is no longer inherited by child processes. If the usec parameter is non-NULL, sd_watchdog_enabled() will return the timeout in µs for the watchdog logic. The service manager will usually terminate a service when it did 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". 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 pkg-config(1) file. Internally, this functions parses the $WATCHDOG_PID and $WATCHDOG_USEC environment variable. The call will ignore these variables if $WATCHDOG_PID does containe 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_PIDSet 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)systemd 215 |