diff --git a/src/haproxy.c b/src/haproxy.c index 1ab87b726..69d42da74 100644 --- a/src/haproxy.c +++ b/src/haproxy.c @@ -493,6 +493,7 @@ static void mworker_block_signals() sigaddset(&set, SIGHUP); sigaddset(&set, SIGINT); sigaddset(&set, SIGTERM); + sigaddset(&set, SIGCHLD); ha_sigmask(SIG_SETMASK, &set, NULL); } @@ -506,6 +507,7 @@ static void mworker_unblock_signals() sigaddset(&set, SIGHUP); sigaddset(&set, SIGINT); sigaddset(&set, SIGTERM); + sigaddset(&set, SIGCHLD); ha_sigmask(SIG_UNBLOCK, &set, NULL); } diff --git a/src/signal.c b/src/signal.c index 01b612179..6f74a6f46 100644 --- a/src/signal.c +++ b/src/signal.c @@ -118,6 +118,8 @@ int signal_init() * parsing We don't want the process to be killed by an unregistered * USR2 signal when the master-worker is reloading */ sigaddset(&blocked_sig, SIGUSR2); + sigaddset(&blocked_sig, SIGCHLD); + ha_sigmask(SIG_SETMASK, &blocked_sig, NULL); sigfillset(&blocked_sig);