mirror of
https://github.com/nginx/nginx.git
synced 2024-12-23 15:40:03 -06:00
*) exit if no workers could not be started
*) do not quit old workers if no new workers could not be started
This commit is contained in:
parent
a864311b12
commit
7b6b09f105
@ -14,7 +14,7 @@ static void ngx_process_init(ngx_cycle_t *cycle);
|
|||||||
static void ngx_console_init(ngx_cycle_t *cycle);
|
static void ngx_console_init(ngx_cycle_t *cycle);
|
||||||
static int __stdcall ngx_console_handler(u_long type);
|
static int __stdcall ngx_console_handler(u_long type);
|
||||||
static ngx_int_t ngx_create_events(ngx_cycle_t *cycle);
|
static ngx_int_t ngx_create_events(ngx_cycle_t *cycle);
|
||||||
static void ngx_start_worker_processes(ngx_cycle_t *cycle, ngx_int_t type);
|
static ngx_int_t ngx_start_worker_processes(ngx_cycle_t *cycle, ngx_int_t type);
|
||||||
static void ngx_reopen_worker_processes(ngx_cycle_t *cycle);
|
static void ngx_reopen_worker_processes(ngx_cycle_t *cycle);
|
||||||
static void ngx_quit_worker_processes(ngx_cycle_t *cycle, ngx_uint_t old);
|
static void ngx_quit_worker_processes(ngx_cycle_t *cycle, ngx_uint_t old);
|
||||||
static void ngx_terminate_worker_processes(ngx_cycle_t *cycle);
|
static void ngx_terminate_worker_processes(ngx_cycle_t *cycle);
|
||||||
@ -116,7 +116,9 @@ ngx_master_process_cycle(ngx_cycle_t *cycle)
|
|||||||
|
|
||||||
ngx_close_listening_sockets(cycle);
|
ngx_close_listening_sockets(cycle);
|
||||||
|
|
||||||
ngx_start_worker_processes(cycle, NGX_PROCESS_RESPAWN);
|
if (ngx_start_worker_processes(cycle, NGX_PROCESS_RESPAWN) == 0) {
|
||||||
|
exit(2);
|
||||||
|
}
|
||||||
|
|
||||||
timer = 0;
|
timer = 0;
|
||||||
timeout = INFINITE;
|
timeout = INFINITE;
|
||||||
@ -206,8 +208,9 @@ ngx_master_process_cycle(ngx_cycle_t *cycle)
|
|||||||
|
|
||||||
ngx_cycle = cycle;
|
ngx_cycle = cycle;
|
||||||
|
|
||||||
ngx_start_worker_processes(cycle, NGX_PROCESS_JUST_RESPAWN);
|
if (ngx_start_worker_processes(cycle, NGX_PROCESS_JUST_RESPAWN)) {
|
||||||
ngx_quit_worker_processes(cycle, 1);
|
ngx_quit_worker_processes(cycle, 1);
|
||||||
|
}
|
||||||
|
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
@ -382,7 +385,7 @@ ngx_create_events(ngx_cycle_t *cycle)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static void
|
static ngx_int_t
|
||||||
ngx_start_worker_processes(ngx_cycle_t *cycle, ngx_int_t type)
|
ngx_start_worker_processes(ngx_cycle_t *cycle, ngx_int_t type)
|
||||||
{
|
{
|
||||||
ngx_int_t n;
|
ngx_int_t n;
|
||||||
@ -394,9 +397,11 @@ ngx_start_worker_processes(ngx_cycle_t *cycle, ngx_int_t type)
|
|||||||
|
|
||||||
for (n = 0; n < ccf->worker_processes; n++) {
|
for (n = 0; n < ccf->worker_processes; n++) {
|
||||||
if (ngx_spawn_process(cycle, "worker", type) == NGX_INVALID_PID) {
|
if (ngx_spawn_process(cycle, "worker", type) == NGX_INVALID_PID) {
|
||||||
return;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return n;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user