diff options
Diffstat (limited to 'src/os/unix')
-rw-r--r-- | src/os/unix/ngx_freebsd_config.h | 1 | ||||
-rw-r--r-- | src/os/unix/ngx_process.c | 8 |
2 files changed, 9 insertions, 0 deletions
diff --git a/src/os/unix/ngx_freebsd_config.h b/src/os/unix/ngx_freebsd_config.h index ce5c3b692..9fc14b3a9 100644 --- a/src/os/unix/ngx_freebsd_config.h +++ b/src/os/unix/ngx_freebsd_config.h @@ -25,6 +25,7 @@ #include <arpa/inet.h> #include <netdb.h> #include <pwd.h> +#include <grp.h> #include <osreldate.h> diff --git a/src/os/unix/ngx_process.c b/src/os/unix/ngx_process.c index 2f0d5c31f..bad9a324c 100644 --- a/src/os/unix/ngx_process.c +++ b/src/os/unix/ngx_process.c @@ -235,5 +235,13 @@ void ngx_process_get_status() "%s " PID_T_FMT " exited with code %d", process, pid, WEXITSTATUS(status)); } + + if (WEXITSTATUS(status) == 2 && ngx_processes[i].respawn) { + ngx_log_error(NGX_LOG_ALERT, ngx_cycle->log, 0, + "%s " PID_T_FMT + " exited with fatal code %d and could not respawn", + process, pid, WEXITSTATUS(status)); + ngx_processes[i].respawn = 0; + } } } |