From 71cd2f7ce705561d8d8f3cb7f385a57bedad1ef1 Mon Sep 17 00:00:00 2001 From: Jakub Hrozek Date: Wed, 24 Feb 2010 18:58:15 +0100 Subject: Reopen logs when SIGHUP is caught Upon receiving SIGHUP, the monitor signals all services to reopen their debug logs. It is also possible to signal individual services to reopen their particular files. Fixes: #332 --- src/monitor/monitor.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) (limited to 'src/monitor/monitor.c') diff --git a/src/monitor/monitor.c b/src/monitor/monitor.c index 0f9fb95e..56a74fba 100644 --- a/src/monitor/monitor.c +++ b/src/monitor/monitor.c @@ -742,6 +742,10 @@ static int service_signal_offline(struct mt_svc *svc) { return service_signal(svc, MON_CLI_METHOD_OFFLINE); } +static int service_signal_rotate(struct mt_svc *svc) +{ + return service_signal(svc, MON_CLI_METHOD_ROTATE); +} static int check_domain_ranges(struct sss_domain_info *domains) { @@ -1103,11 +1107,14 @@ static void monitor_hup(struct tevent_context *ev, void *private_data) { struct mt_ctx *ctx = talloc_get_type(private_data, struct mt_ctx); + struct mt_svc *cur_svc; DEBUG(1, ("Received SIGHUP.\n")); - /* Right now this function doesn't do anything. - * It will handle logrotate HUPs soon. - */ + + /* Signal all services to rotate debug files */ + for(cur_svc = ctx->svc_list; cur_svc; cur_svc = cur_svc->next) { + service_signal_rotate(cur_svc); + } } static int monitor_cleanup(void) -- cgit