diff src/os/unix/ngx_posix_init.c @ 191:71ce40b3c37b

nginx-0.0.1-2003-11-19-19:26:41 import
author Igor Sysoev <igor@sysoev.ru>
date Wed, 19 Nov 2003 16:26:41 +0000
parents 4c698194c56d
children 8dee38ea9117
line wrap: on
line diff
--- a/src/os/unix/ngx_posix_init.c
+++ b/src/os/unix/ngx_posix_init.c
@@ -13,8 +13,8 @@ void ngx_rotate_signal_handler(int signo
 
 int ngx_posix_init(ngx_log_t *log)
 {
-    struct sigaction sa;
-    struct rlimit  rlmt;
+    struct rlimit     rlmt;
+    struct sigaction  sa;
 
     ngx_memzero(&sa, sizeof(struct sigaction));
     sa.sa_handler = SIG_IGN;
@@ -25,6 +25,15 @@ int ngx_posix_init(ngx_log_t *log)
         return NGX_ERROR;
     }
 
+    ngx_memzero(&sa, sizeof(struct sigaction));
+    sa.sa_handler = ngx_sigchld_handler;
+    sigemptyset(&sa.sa_mask);
+    if (sigaction(SIGCHLD, &sa, NULL) == -1) {
+        ngx_log_error(NGX_LOG_EMERG, log, ngx_errno,
+                      "sigaction(SIGCHLD) failed");
+        return NGX_ERROR;
+    }
+
     sa.sa_handler = ngx_restart_signal_handler;
     if (sigaction(ngx_signal_value(NGX_RESTART_SIGNAL), &sa, NULL) == -1) {
         ngx_log_error(NGX_LOG_EMERG, log, ngx_errno,