event: hook up sd-event with the service watchdog logic

Adds a new call sd_event_set_watchdog() that can be used to hook up the
event loop with the watchdog supervision logic of systemd. If enabled
and $WATCHDOG_USEC is set the event loop will ping the invoking systemd
daemon right after coming back from epoll_wait() but not more often than
$WATCHDOG_USEC/4. The epoll_wait() will sleep no longer than
$WATCHDOG_USEC/4*3, to make sure the service manager is called in time.

This means that setting WatchdogSec= in a .service file and calling
sd_event_set_watchdog() in your daemon is enough to hook it up with the
watchdog logic.
This commit is contained in:
Lennart Poettering
2013-12-11 18:20:09 +01:00
parent 08cd155254
commit cde93897cd
19 changed files with 150 additions and 10 deletions
+2
View File
@@ -59,6 +59,8 @@ Manager *manager_new(void) {
return NULL;
}
sd_event_set_watchdog(m->event, true);
return m;
}