diff options
author | Jakub Hrozek <jhrozek@redhat.com> | 2010-02-24 18:58:15 +0100 |
---|---|---|
committer | Stephen Gallagher <sgallagh@redhat.com> | 2010-03-08 13:42:46 -0500 |
commit | 71cd2f7ce705561d8d8f3cb7f385a57bedad1ef1 (patch) | |
tree | 3d8e723c7deedc04468e4e0a1a52b60c0d0b302e /src/monitor/monitor.c | |
parent | bc7d61995ed04de885cb8e4bf4c5f2dcbc780649 (diff) | |
download | sssd-71cd2f7ce705561d8d8f3cb7f385a57bedad1ef1.tar.gz sssd-71cd2f7ce705561d8d8f3cb7f385a57bedad1ef1.tar.xz sssd-71cd2f7ce705561d8d8f3cb7f385a57bedad1ef1.zip |
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
Diffstat (limited to 'src/monitor/monitor.c')
-rw-r--r-- | src/monitor/monitor.c | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/src/monitor/monitor.c b/src/monitor/monitor.c index 0f9fb95e3..56a74fba6 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) |