summaryrefslogtreecommitdiffstats
path: root/src/util
diff options
context:
space:
mode:
authorSimo Sorce <simo@redhat.com>2016-01-12 20:13:28 -0500
committerJakub Hrozek <jhrozek@redhat.com>2016-06-29 21:45:33 +0200
commitf9f3dbc87d49bea05a54c2bcd9f7e40e4e8ab85a (patch)
treedcf279d163b59ee1acb3b4691ca119b78e8c3a2f /src/util
parent75ba524d356fed615a9c92152f64aebf0bdaf9c2 (diff)
downloadsssd-f9f3dbc87d49bea05a54c2bcd9f7e40e4e8ab85a.tar.gz
sssd-f9f3dbc87d49bea05a54c2bcd9f7e40e4e8ab85a.tar.xz
sssd-f9f3dbc87d49bea05a54c2bcd9f7e40e4e8ab85a.zip
Server: Enable Watchdog in all daemons
This allows the services to self monitor. Related: https://fedorahosted.org/sssd/ticket/2921 Reviewed-by: Jakub Hrozek <jhrozek@redhat.com> Reviewed-by: Pavel Březina <pbrezina@redhat.com>
Diffstat (limited to 'src/util')
-rw-r--r--src/util/server.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/util/server.c b/src/util/server.c
index 074dc3484..953cd3d61 100644
--- a/src/util/server.c
+++ b/src/util/server.c
@@ -459,6 +459,7 @@ int server_setup(const char *name, int flags,
struct tevent_signal *tes;
struct logrotate_ctx *lctx;
char *locale;
+ int watchdog_interval;
ret = chown_debug_file(NULL, uid, gid);
if (ret != EOK) {
@@ -656,6 +657,21 @@ int server_setup(const char *name, int flags,
}
}
+ /* Setup the internal watchdog */
+ ret = confdb_get_int(ctx->confdb_ctx, conf_entry,
+ CONFDB_DOMAIN_TIMEOUT,
+ 0, &watchdog_interval);
+ if (ret != EOK) {
+ DEBUG(SSSDBG_FATAL_FAILURE, "Error reading from confdb (%d) [%s]\n",
+ ret, strerror(ret));
+ return ret;
+ }
+ ret = setup_watchdog(ctx->event_ctx, watchdog_interval);
+ if (ret != EOK) {
+ DEBUG(SSSDBG_CRIT_FAILURE, "Watchdog setup failed.\n");
+ return ret;
+ }
+
sss_log(SSS_LOG_INFO, "Starting up");
DEBUG(SSSDBG_TRACE_FUNC, "CONFDB: %s\n", conf_db);