патч для nginx/win32
Илья Шипицин
chipitsine at gmail.com
Tue Mar 26 11:03:30 UTC 2013
Добрый день!
мы достаточно плотно используем nginx для Windows, запускаем его через
назначенное задание (scheduled tasks). Для этого в конфиге надо сделать
"daemon off" и дальше менеджер заданий следит за мастер-процессом,
запущенным на терминале.
это, кстати, удобнее, чем служба Windows (вообще, назначенные задания более
удобны и мы чаще используем их, чем службы).
в этом сценарии есть один недостаток, при завершении мастер-процесса,
остается запущенный worker-процесс.
насколько я понял, в случае Windows это штатная ситуация (при такой работе
с процессами, которая используется в nginx), для исправления предлагаю
такой патч (сделан для 1.3.14):
--- src/os/win32/ngx_process_cycle.c 2013-03-26 16:57:20.000000000 +0600
+++ src/os/win32/ngx_process_cycle.c.new 2013-03-26
16:57:00.987341331 +0600
@@ -303,6 +303,8 @@
ngx_console_handler(u_long type)
{
char *msg;
+ ngx_cycle_t *cycle;
+ cycle = (ngx_cycle_t *) ngx_cycle;
switch (type) {
@@ -316,6 +318,7 @@
case CTRL_CLOSE_EVENT:
msg = "console closing, exiting";
+ ngx_terminate_worker_processes(cycle);
break;
case CTRL_LOGOFF_EVENT:
Илья Шипицин
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.nginx.org/pipermail/nginx-ru/attachments/20130326/a75e2d94/attachment.html>
Подробная информация о списке рассылки nginx-ru