From 8d75833aacaa6c5aebd4014c79ace5633d6dabf3 Mon Sep 17 00:00:00 2001 From: Bent Bisballe Nyeng Date: Wed, 2 Jul 2014 16:00:15 +0200 Subject: Shut down server process nicely on SIGINT. Reopen logfile on SIGHUP --- src/miavd.cc | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'src/miavd.cc') diff --git a/src/miavd.cc b/src/miavd.cc index e9d7bc4..4ff3425 100644 --- a/src/miavd.cc +++ b/src/miavd.cc @@ -32,6 +32,9 @@ #include +// For signal +#include + #include "miav_daemon.h" #include "miav_config.h" @@ -62,6 +65,23 @@ static const char usage_str[] = " -P, --pidfile file Write pid of the running daemon to file.\n" ; +bool server_is_running = true; +void ctrl_c(int) +{ + DEBUG(server, "Ctrl+c detected"); + server_is_running = false; +} + +void reload(int) +{ + printf("Reopening logfile...\n"); + if(hugin_reopen_log() != HUG_STATUS_OK) { + fprintf(stderr, "Could not reopen logfile!\n"); + return; + } + DEBUG(server, "Reopened log\n"); +} + int main(int argc, char *argv[]) { const char *hugin_filter = "+all"; @@ -168,5 +188,8 @@ int main(int argc, char *argv[]) if(user) cuser = user; if(group) cgroup = group; + signal(SIGHUP, reload); + signal(SIGINT, ctrl_c); + return daemon.run(cuser, cgroup, !foreground, pidfile); } -- cgit v1.2.3