|
NAME | SYNOPSIS | DESCRIPTION | RETURN VALUE | NOTES | ENVIRONMENT | SEE ALSO | COLOPHON |
|
|
|
SD_WATCHDOG_ENABLED(3) sd_watchdog_enabled SD_WATCHDOG_ENABLED(3)
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.
systemd(1), sd-daemon(3), daemon(7), systemd.service(5),
sd_notify(3), sd_event_set_watchdog(3)
This page is part of the systemd (systemd system and service
manager) project. Information about the project can be found at
⟨http://www.freedesktop.org/wiki/Software/systemd⟩. If you have
a bug report for this manual page, see
⟨http://www.freedesktop.org/wiki/Software/systemd/#bugreports⟩.
This page was obtained from the project's upstream Git repository
⟨https://github.com/systemd/systemd.git⟩ on 2020-12-18. (At that
time, the date of the most recent commit that was found in the
repository was 2020-12-18.) If you discover any rendering
problems in this HTML version of the page, or you believe there
is a better or more up-to-date source for the page, or you have
corrections or improvements to the information in this COLOPHON
(which is not part of the original manual page), send a mail to
man-pages@man7.org
systemd 247 SD_WATCHDOG_ENABLED(3)
Pages that refer to this page: sd-daemon(3), sd_event_set_watchdog(3), sd_notify(3), systemd.exec(5), systemd.service(5), systemd.directives(7), systemd.index(7)