X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=man%2Fsd_watchdog_enabled.xml;h=297878d814dfb7495293c7c2211a6ce189aa1331;hp=e42ae430ece19f43cb403e8c7d9c2a8cd8a5baae;hb=5544ee85163733eaa50f598fcf3bd9421d4a42f9;hpb=09812eb764b440651f3ff4cb5d37bd343f800560 diff --git a/man/sd_watchdog_enabled.xml b/man/sd_watchdog_enabled.xml index e42ae430e..297878d81 100644 --- a/man/sd_watchdog_enabled.xml +++ b/man/sd_watchdog_enabled.xml @@ -21,7 +21,8 @@ along with systemd; If not, see . --> - + sd_watchdog_enabled @@ -54,7 +55,7 @@ int sd_watchdog_enabled int unset_environment - const uint64_t *usec + uint64_t *usec @@ -68,33 +69,40 @@ 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_notify3 + 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 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. + 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 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_notify3 - with a message string of - WATCHDOG=1. + 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 + logic, use WatchdogSec= in service files. See systemd.service5 for details. @@ -107,7 +115,7 @@ 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 + the return value is > 0, the usec parameter is valid after the call. @@ -115,46 +123,16 @@ Notes - This function is provided by the reference - implementation of APIs for new-style daemons and - distributed with the systemd package. The algorithm - it implements is simple, and can easily be - reimplemented in daemons if it is important to support - this interface without using the reference - implementation. + 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 + $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 + that case, the variables were set for a different process further up the process tree. - - For details about the algorithm check the - liberally licensed reference implementation sources: - - and - - sd_watchdog_enabled() is - implemented in the reference implementation's - sd-daemon.c and - sd-daemon.h files. These - interfaces are available as shared library, which can - be compiled and linked to with the - libsystemd-daemon pkg-config1 - file. Alternatively, applications consuming these APIs - may copy the implementation into their source - tree. For more details about the reference - implementation see - sd-daemon3. - - If the reference implementation is used as - drop-in files and -DDISABLE_SYSTEMD is set during - compilation, these functions will always return 0 and - otherwise become a NOP. @@ -184,6 +162,19 @@ + + History + + 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. + + See Also