diff --git a/daemon.c b/daemon.c index fc5e1c3037..f285a8c98c 100644 --- a/daemon.c +++ b/daemon.c @@ -480,6 +480,8 @@ static int service_loop(int socknum, int *socklist) pfd[i].fd = socklist[i]; pfd[i].events = POLLIN; } + + signal(SIGCHLD, child_handler); for (;;) { int i; @@ -518,8 +520,6 @@ static int serve(int port) { int socknum, *socklist; - signal(SIGCHLD, child_handler); - socknum = socksetup(port, &socklist); if (socknum == 0) die("unable to allocate any listen sockets on port %u", port);