summaryrefslogtreecommitdiffstats
path: root/src/monitor/monitor.c
diff options
context:
space:
mode:
authorJakub Hrozek <jhrozek@redhat.com>2010-02-24 18:58:15 +0100
committerStephen Gallagher <sgallagh@redhat.com>2010-03-08 13:42:46 -0500
commit71cd2f7ce705561d8d8f3cb7f385a57bedad1ef1 (patch)
tree3d8e723c7deedc04468e4e0a1a52b60c0d0b302e /src/monitor/monitor.c
parentbc7d61995ed04de885cb8e4bf4c5f2dcbc780649 (diff)
downloadsssd-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.c13
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)