From: Dave West Date: Tue, 15 Jan 2008 15:05:43 +0000 (+0000) Subject: Fixed signal handlers and contents of pid file. X-Git-Tag: v7.86~2602 X-Git-Url: https://code.citadel.org/?a=commitdiff_plain;h=c438a531e89d9eee93eb6b8237ffdeabfbc837fe;p=citadel.git Fixed signal handlers and contents of pid file. Now webcit exits when sent SIG_HUP or SIG_TERM --- diff --git a/webcit/webserver.c b/webcit/webserver.c index e4dce6679..4993a6d0e 100644 --- a/webcit/webserver.c +++ b/webcit/webserver.c @@ -466,7 +466,7 @@ pid_t current_child; void graceful_shutdown_watcher(int signum) { lprintf (1, "bye; shutting down watcher."); kill(current_child, signum); - exit(0); +// exit(0); } /** @@ -529,7 +529,7 @@ void start_daemon(char *pid_file) freopen("/dev/null", "r", stdin); freopen("/dev/null", "w", stdout); freopen("/dev/null", "w", stderr); -/// signal(SIGTERM, graceful_shutdown_watcher); + signal(SIGTERM, graceful_shutdown_watcher); signal(SIGHUP, graceful_shutdown_watcher); do { @@ -542,19 +542,19 @@ void start_daemon(char *pid_file) } else if (current_child == 0) { -//// signal(SIGTERM, graceful_shutdown); + signal(SIGTERM, graceful_shutdown); signal(SIGHUP, graceful_shutdown); return; /* continue starting webcit. */ } else { -//// signal(SIGTERM, SIG_IGN); - signal(SIGHUP, SIG_IGN); +// signal(SIGTERM, SIG_IGN); +// signal(SIGHUP, SIG_IGN); if (pid_file) { fp = fopen(pid_file, "w"); if (fp != NULL) { - fprintf(fp, "%d\n", current_child); + fprintf(fp, "%d\n", getpid()); fclose(fp); } }