commit - f5b87db715f4a940223241126d03637cd47c7261
commit + 28c73ba99b0b295a986f42f6552f0b06b330a769
blob - 41c476b475546ae6f6922c86298dbe79f15fcaa2
blob + 807567d10dff2623e0912662721ea40bc963f1f2
--- msearchd/msearchd.c
+++ msearchd/msearchd.c
const struct logger *logger = &dbglogger;
static void
-handle_sigchld(int sig)
+sighdlr(int sig)
{
- static volatile sig_atomic_t got_sigchld;
+ static volatile sig_atomic_t got_sig;
int i, save_errno;
- if (got_sigchld)
+ if (got_sig)
return;
- got_sigchld = -1;
+ got_sig = -1;
save_errno = errno;
for (i = 0; i < children; ++i)
sigemptyset(&set);
sigaddset(&set, SIGCHLD);
+ sigaddset(&set, SIGINT);
+ sigaddset(&set, SIGTERM);
sigprocmask(SIG_BLOCK, &set, NULL);
ret = snprintf(sockp, sizeof(sockp), "%s/%s", root, sock);
(long long)pids[i]);
}
- signal(SIGCHLD, handle_sigchld);
+ signal(SIGINT, sighdlr);
+ signal(SIGTERM, sighdlr);
+ signal(SIGCHLD, sighdlr);
signal(SIGHUP, SIG_IGN);
sigprocmask(SIG_UNBLOCK, &set, NULL);