aboutsummaryrefslogtreecommitdiff
path: root/src/core/nginx.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/nginx.c')
-rw-r--r--src/core/nginx.c61
1 files changed, 20 insertions, 41 deletions
diff --git a/src/core/nginx.c b/src/core/nginx.c
index b436dd45a..61cc53e48 100644
--- a/src/core/nginx.c
+++ b/src/core/nginx.c
@@ -173,7 +173,7 @@ int main(int argc, char *const *argv, char **envp)
#else
- if (ccf->daemon != 0) {
+ if (!ngx_inherited && ccf->daemon != 0) {
if (ngx_daemon(cycle->log) == NGX_ERROR) {
return 1;
}
@@ -356,11 +356,10 @@ static void ngx_master_process_cycle(ngx_cycle_t *cycle, ngx_master_ctx_t *ctx)
live = 0;
for (i = 0; i < ngx_last_process; i++) {
- ngx_log_debug6(NGX_LOG_DEBUG_EVENT, cycle->log, 0,
+ ngx_log_debug5(NGX_LOG_DEBUG_EVENT, cycle->log, 0,
"child: " PID_T_FMT
- " s:%d e:%d t:%d d:%d r:%d",
+ " e:%d t:%d d:%d r:%d",
ngx_processes[i].pid,
- ngx_processes[i].signal,
ngx_processes[i].exiting,
ngx_processes[i].exited,
ngx_processes[i].detached,
@@ -396,13 +395,10 @@ static void ngx_master_process_cycle(ngx_cycle_t *cycle, ngx_master_ctx_t *ctx)
ngx_processes[ngx_last_process];
}
- } else if (!ngx_processes[i].detached
- && (ngx_terminate || ngx_quit))
+ } else if (ngx_processes[i].exiting
+ || !ngx_processes[i].detached)
{
live = 1;
-
- } else if (ngx_processes[i].exiting) {
- live = 1;
}
}
}
@@ -470,44 +466,27 @@ static void ngx_master_process_cycle(ngx_cycle_t *cycle, ngx_master_ctx_t *ctx)
if (signo) {
for (i = 0; i < ngx_last_process; i++) {
- if (!ngx_processes[i].detached) {
- ngx_processes[i].signal = signo;
-
- ngx_log_debug2(NGX_LOG_DEBUG_EVENT,
- cycle->log, 0,
- "signal " PID_T_FMT " %d",
- ngx_processes[i].pid, signo);
+ if (ngx_processes[i].detached) {
+ continue;
}
- }
- signo = 0;
- }
- for (i = 0; i < ngx_last_process; i++) {
+ ngx_log_debug2(NGX_LOG_DEBUG_CORE, cycle->log, 0,
+ "kill (" PID_T_FMT ", %d)" ,
+ ngx_processes[i].pid, signo);
- if (ngx_processes[i].signal == 0) {
- continue;
- }
+ if (kill(ngx_processes[i].pid, signo) == -1) {
+ ngx_log_error(NGX_LOG_ALERT, cycle->log, ngx_errno,
+ "kill(%d, %d) failed",
+ ngx_processes[i].pid, signo);
+ continue;
+ }
- ngx_log_debug2(NGX_LOG_DEBUG_CORE, cycle->log, 0,
- "kill (" PID_T_FMT ", %d)" ,
- ngx_processes[i].pid,
- ngx_processes[i].signal);
-
- if (kill(ngx_processes[i].pid, ngx_processes[i].signal)
- == -1)
- {
- ngx_log_error(NGX_LOG_ALERT, cycle->log, ngx_errno,
- "kill(%d, %d) failed",
- ngx_processes[i].pid,
- ngx_processes[i].signal);
- continue;
+ if (signo != ngx_signal_value(NGX_REOPEN_SIGNAL)) {
+ ngx_processes[i].exiting = 1;
+ }
}
- if (ngx_processes[i].signal
- != ngx_signal_value(NGX_REOPEN_SIGNAL))
- {
- ngx_processes[i].exiting = 1;
- }
+ signo = 0;
}
if (ngx_reopen || ngx_reconfigure || ngx_timer) {