summaryrefslogtreecommitdiffabout
authorMichael Krelin <hacker@klever.net>2004-07-10 19:59:06 (UTC)
committer Michael Krelin <hacker@klever.net>2004-07-10 19:59:06 (UTC)
commit4f8a6f291a231410a03c438bc9d63a7beb861e7b (patch) (side-by-side diff)
tree790352f42d045e23e9bbb6ae3a210d4faeae8244
parent9148dac885c0325636c2d33715ba248371706d0d (diff)
downloaddudki-4f8a6f291a231410a03c438bc9d63a7beb861e7b.zip
dudki-4f8a6f291a231410a03c438bc9d63a7beb861e7b.tar.gz
dudki-4f8a6f291a231410a03c438bc9d63a7beb861e7b.tar.bz2
fixed signal handling, so that dudki can be HUP-ped more than once.0.0
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--src/dudki.cc5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/dudki.cc b/src/dudki.cc
index 3c50e56..b769109 100644
--- a/src/dudki.cc
+++ b/src/dudki.cc
@@ -219,24 +219,29 @@ int main(int argc,char **argv) {
if(pf<0)
throw runtime_error(string(__PRETTY_FUNCTION__)+": failed to fork()");
if(pf) {
_exit(0);
}
}
pid_file pidfile;
pidfile.set(config.pidfile);
signal(SIGINT,lethal_signal_handler);
signal(SIGABRT,lethal_signal_handler);
signal(SIGTERM,lethal_signal_handler);
signal(SIGHUP,sighup_handler);
+ sigset_t sset;
+ sigemptyset(&sset);
+ sigaddset(&sset,SIGINT); sigaddset(&sset,SIGABRT);
+ sigaddset(&sset,SIGTERM); sigaddset(&sset,SIGHUP);
+ sigprocmask(SIG_UNBLOCK,&sset,NULL);
while(!finishing) {
check_herd(config);
sleep(config.check_interval);
}
}
break;
default:
throw runtime_error(string(__PRETTY_FUNCTION__)+": internal error");
}
}catch(exception& e) {
cerr << "Oops: " << e.what() << endl;
return 1;