aboutsummaryrefslogtreecommitdiff
path: root/src/os/unix/ngx_process_cycle.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/os/unix/ngx_process_cycle.c')
-rw-r--r--src/os/unix/ngx_process_cycle.c14
1 files changed, 12 insertions, 2 deletions
diff --git a/src/os/unix/ngx_process_cycle.c b/src/os/unix/ngx_process_cycle.c
index 4a281f043..2a4575455 100644
--- a/src/os/unix/ngx_process_cycle.c
+++ b/src/os/unix/ngx_process_cycle.c
@@ -42,7 +42,8 @@ u_char master_process[] = "master process";
void ngx_master_process_cycle(ngx_cycle_t *cycle, ngx_master_ctx_t *ctx)
{
- char *title, *p;
+ char *title;
+ u_char *p;
size_t size;
ngx_int_t n;
ngx_uint_t i;
@@ -83,7 +84,7 @@ void ngx_master_process_cycle(ngx_cycle_t *cycle, ngx_master_ctx_t *ctx)
p = ngx_cpymem(title, master_process, sizeof(master_process) - 1);
for (n = 0; n < ctx->argc; n++) {
*p++ = ' ';
- p = ngx_cpystrn(p, ctx->argv[n], size);
+ p = ngx_cpystrn(p, (u_char *) ctx->argv[n], size);
}
ngx_setproctitle(title);
@@ -220,6 +221,15 @@ void ngx_master_process_cycle(ngx_cycle_t *cycle, ngx_master_ctx_t *ctx)
if (ngx_reconfigure) {
ngx_reconfigure = 0;
+
+ if (ngx_new_binary) {
+ ngx_log_error(NGX_LOG_INFO, cycle->log, 0, "start new workers");
+
+ ngx_start_worker_processes(cycle, ccf->worker_processes,
+ NGX_PROCESS_JUST_RESPAWN);
+ continue;
+ }
+
ngx_log_error(NGX_LOG_INFO, cycle->log, 0, "reconfiguring");
cycle = ngx_init_cycle(cycle);