comparison src/core/nginx.c @ 248:e885208c518b

nginx-0.0.2-2004-02-03-00:19:52 import
author Igor Sysoev <igor@sysoev.ru>
date Mon, 02 Feb 2004 21:19:52 +0000
parents bf2faf694c19
children 2a0540287298
comparison
equal deleted inserted replaced
247:008276b9e061 248:e885208c518b
171 171
172 #endif 172 #endif
173 173
174 #else 174 #else
175 175
176 if (ccf->daemon != 0) { 176 if (!ngx_inherited && ccf->daemon != 0) {
177 if (ngx_daemon(cycle->log) == NGX_ERROR) { 177 if (ngx_daemon(cycle->log) == NGX_ERROR) {
178 return 1; 178 return 1;
179 } 179 }
180 } 180 }
181 181
354 "reap childs"); 354 "reap childs");
355 355
356 live = 0; 356 live = 0;
357 for (i = 0; i < ngx_last_process; i++) { 357 for (i = 0; i < ngx_last_process; i++) {
358 358
359 ngx_log_debug6(NGX_LOG_DEBUG_EVENT, cycle->log, 0, 359 ngx_log_debug5(NGX_LOG_DEBUG_EVENT, cycle->log, 0,
360 "child: " PID_T_FMT 360 "child: " PID_T_FMT
361 " s:%d e:%d t:%d d:%d r:%d", 361 " e:%d t:%d d:%d r:%d",
362 ngx_processes[i].pid, 362 ngx_processes[i].pid,
363 ngx_processes[i].signal,
364 ngx_processes[i].exiting, 363 ngx_processes[i].exiting,
365 ngx_processes[i].exited, 364 ngx_processes[i].exited,
366 ngx_processes[i].detached, 365 ngx_processes[i].detached,
367 ngx_processes[i].respawn); 366 ngx_processes[i].respawn);
368 367
394 if (i != --ngx_last_process) { 393 if (i != --ngx_last_process) {
395 ngx_processes[i--] = 394 ngx_processes[i--] =
396 ngx_processes[ngx_last_process]; 395 ngx_processes[ngx_last_process];
397 } 396 }
398 397
399 } else if (!ngx_processes[i].detached 398 } else if (ngx_processes[i].exiting
400 && (ngx_terminate || ngx_quit)) 399 || !ngx_processes[i].detached)
401 { 400 {
402 live = 1;
403
404 } else if (ngx_processes[i].exiting) {
405 live = 1; 401 live = 1;
406 } 402 }
407 } 403 }
408 } 404 }
409 405
468 } 464 }
469 465
470 if (signo) { 466 if (signo) {
471 for (i = 0; i < ngx_last_process; i++) { 467 for (i = 0; i < ngx_last_process; i++) {
472 468
473 if (!ngx_processes[i].detached) { 469 if (ngx_processes[i].detached) {
474 ngx_processes[i].signal = signo; 470 continue;
475
476 ngx_log_debug2(NGX_LOG_DEBUG_EVENT,
477 cycle->log, 0,
478 "signal " PID_T_FMT " %d",
479 ngx_processes[i].pid, signo);
480 } 471 }
481 } 472
473 ngx_log_debug2(NGX_LOG_DEBUG_CORE, cycle->log, 0,
474 "kill (" PID_T_FMT ", %d)" ,
475 ngx_processes[i].pid, signo);
476
477 if (kill(ngx_processes[i].pid, signo) == -1) {
478 ngx_log_error(NGX_LOG_ALERT, cycle->log, ngx_errno,
479 "kill(%d, %d) failed",
480 ngx_processes[i].pid, signo);
481 continue;
482 }
483
484 if (signo != ngx_signal_value(NGX_REOPEN_SIGNAL)) {
485 ngx_processes[i].exiting = 1;
486 }
487 }
488
482 signo = 0; 489 signo = 0;
483 }
484
485 for (i = 0; i < ngx_last_process; i++) {
486
487 if (ngx_processes[i].signal == 0) {
488 continue;
489 }
490
491 ngx_log_debug2(NGX_LOG_DEBUG_CORE, cycle->log, 0,
492 "kill (" PID_T_FMT ", %d)" ,
493 ngx_processes[i].pid,
494 ngx_processes[i].signal);
495
496 if (kill(ngx_processes[i].pid, ngx_processes[i].signal)
497 == -1)
498 {
499 ngx_log_error(NGX_LOG_ALERT, cycle->log, ngx_errno,
500 "kill(%d, %d) failed",
501 ngx_processes[i].pid,
502 ngx_processes[i].signal);
503 continue;
504 }
505
506 if (ngx_processes[i].signal
507 != ngx_signal_value(NGX_REOPEN_SIGNAL))
508 {
509 ngx_processes[i].exiting = 1;
510 }
511 } 490 }
512 491
513 if (ngx_reopen || ngx_reconfigure || ngx_timer) { 492 if (ngx_reopen || ngx_reconfigure || ngx_timer) {
514 break; 493 break;
515 } 494 }