author | Michael Krelin <hacker@klever.net> | 2004-07-21 20:59:33 (UTC) |
---|---|---|
committer | Michael Krelin <hacker@klever.net> | 2004-07-21 20:59:33 (UTC) |
commit | 4b2d32eca61f62bfd1370fd64254514152ecd23c (patch) (side-by-side diff) | |
tree | ab7d32f4b1572a33d1384d3127495feaea3978b4 | |
parent | 5e437102c59f4544e3803598eabcb643d403272d (diff) | |
download | dudki-4b2d32eca61f62bfd1370fd64254514152ecd23c.zip dudki-4b2d32eca61f62bfd1370fd64254514152ecd23c.tar.gz dudki-4b2d32eca61f62bfd1370fd64254514152ecd23c.tar.bz2 |
more civilized restart, bumped up version.
-rw-r--r-- | NEWS | 3 | ||||
-rw-r--r-- | configure.ac | 2 | ||||
-rw-r--r-- | src/dudki.cc | 5 |
3 files changed, 8 insertions, 2 deletions
@@ -1,2 +1,5 @@ +0.1 + - initgroups() before executing RestartCommand. + - more civilized restart. 0.0 - Initial release. diff --git a/configure.ac b/configure.ac index 8a2a10b..8521a34 100644 --- a/configure.ac +++ b/configure.ac @@ -1,5 +1,5 @@ -AC_INIT([dudki], [0.0], [dudki-bugs@klever.net]) +AC_INIT([dudki], [0.1], [dudki-bugs@klever.net]) AC_CONFIG_SRCDIR([src/dudki.cc]) AC_CONFIG_HEADER([config.h]) AM_INIT_AUTOMAKE([dist-bzip2]) diff --git a/src/dudki.cc b/src/dudki.cc index b769109..b4e95a7 100644 --- a/src/dudki.cc +++ b/src/dudki.cc @@ -20,17 +20,18 @@ using namespace std; #define PHEADER PACKAGE " Version " VERSION #define PCOPY "Copyright (c) 2004 Klever Group" bool finishing = false; +bool restarting = false; static char **_argv = NULL; static void lethal_signal_handler(int signum) { syslog(LOG_NOTICE,"Lethal signal received. Terminating."); finishing = true; } static void sighup_handler(int signum) { syslog(LOG_NOTICE,"SUGHUP received, reloading."); - execvp(_argv[0],_argv); + restarting = finishing = true; } void check_herd(configuration& config) { for(processes_t::iterator i=config.processes.begin();i!=config.processes.end();++i) @@ -236,8 +237,10 @@ int main(int argc,char **argv) { while(!finishing) { check_herd(config); sleep(config.check_interval); } + if(restarting) + execvp(_argv[0],_argv); } break; default: throw runtime_error(string(__PRETTY_FUNCTION__)+": internal error"); |