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);
}