a signaller process should stop configuration processing just after it is able to get pid file, this allows to not open log files, etc.
diff --git a/src/core/nginx.c b/src/core/nginx.c index eec48bf..ff7a9f8 100644 --- a/src/core/nginx.c +++ b/src/core/nginx.c
@@ -330,6 +330,10 @@ return 0; } + if (ngx_signal) { + return ngx_signal_process(cycle, ngx_signal); + } + ngx_os_status(cycle->log); ngx_cycle = cycle; @@ -340,10 +344,6 @@ ngx_process = NGX_PROCESS_MASTER; } - if (ngx_signal) { - return ngx_signal_process(cycle, ngx_signal); - } - #if !(NGX_WIN32) if (ngx_init_signals(cycle->log) != NGX_OK) {
diff --git a/src/core/ngx_cycle.c b/src/core/ngx_cycle.c index 63eec14..f931ec5 100644 --- a/src/core/ngx_cycle.c +++ b/src/core/ngx_cycle.c
@@ -269,7 +269,6 @@ cycle->conf_file.data); } - for (i = 0; ngx_modules[i]; i++) { if (ngx_modules[i]->type != NGX_CORE_MODULE) { continue; @@ -287,6 +286,9 @@ } } + if (ngx_process == NGX_PROCESS_SIGNALLER) { + return cycle; + } ccf = (ngx_core_conf_t *) ngx_get_conf(cycle->conf_ctx, ngx_core_module); @@ -564,14 +566,12 @@ } } - if (ngx_process != NGX_PROCESS_SIGNALLER) { - if (ngx_open_listening_sockets(cycle) != NGX_OK) { - goto failed; - } + if (ngx_open_listening_sockets(cycle) != NGX_OK) { + goto failed; + } - if (!ngx_test_config) { - ngx_configure_listening_sockets(cycle); - } + if (!ngx_test_config) { + ngx_configure_listening_sockets(cycle); }