X-Git-Url: http://git.indexdata.com/?p=yaz-moved-to-github.git;a=blobdiff_plain;f=src%2Fdaemon.c;h=82d1c9e5c3c5c9667bbb5853d1c205735d3a7e3b;hp=b213f043a5e3dd01cde06e9e05b4ce86cb4e757f;hb=573ca6773abadcc7380bf900a6f443119f2e8c01;hpb=09db2ad24d6ba8693290d4a5dbc0a741fff74c91 diff --git a/src/daemon.c b/src/daemon.c index b213f04..82d1c9e 100644 --- a/src/daemon.c +++ b/src/daemon.c @@ -75,12 +75,14 @@ static void keepalive(void (*work)(void *data), void *data) int cont = 1; void (*old_sighup)(int); void (*old_sigterm)(int); + void (*old_sigusr1)(int); /* keep signals in their original state and make sure that some signals to parent process also gets sent to the child.. */ old_sighup = signal(SIGHUP, kill_child_handler); old_sigterm = signal(SIGTERM, kill_child_handler); + old_sigusr1 = signal(SIGUSR1, kill_child_handler); while (cont) { pid_t p = fork(); @@ -97,6 +99,7 @@ static void keepalive(void (*work)(void *data), void *data) /* child */ signal(SIGHUP, old_sighup); /* restore */ signal(SIGTERM, old_sigterm);/* restore */ + signal(SIGUSR1, old_sigusr1);/* restore */ work(data); exit(0);