<div dir="ltr"><div><div><div><div><div>Добрый день!<br><br></div>мы достаточно плотно используем nginx для Windows, запускаем его через назначенное задание (scheduled tasks). Для этого в конфиге надо сделать "daemon off" и дальше менеджер заданий следит за мастер-процессом, запущенным на терминале.<br>
<br></div>это, кстати, удобнее, чем служба Windows (вообще, назначенные задания более удобны и мы чаще используем их, чем службы).<br><br></div>в этом сценарии есть один недостаток, при завершении мастер-процесса, остается запущенный worker-процесс.<br>
<br></div>насколько я понял, в случае Windows это штатная ситуация (при такой работе с процессами, которая используется в nginx), для исправления предлагаю такой патч (сделан для 1.3.14):<br><br>--- src/os/win32/ngx_process_cycle.c 2013-03-26 16:57:20.000000000 +0600<br>
+++ src/os/win32/ngx_process_cycle.c.new 2013-03-26 16:57:00.987341331 +0600<br>@@ -303,6 +303,8 @@<br> ngx_console_handler(u_long type)<br> {<br> char *msg;<br>+ ngx_cycle_t *cycle;<br>+ cycle = (ngx_cycle_t *) ngx_cycle;<br>
<br> switch (type) {<br> <br>@@ -316,6 +318,7 @@<br> <br> case CTRL_CLOSE_EVENT:<br> msg = "console closing, exiting";<br>+ ngx_terminate_worker_processes(cycle);<br> break;<br>
<br> case CTRL_LOGOFF_EVENT:<br><br><br></div>Илья Шипицин<br></div>