Mercurial > hg > nginx
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 } |