Re: Падения nginx под CentOS 5.2

Gena Makhomed gmm at csdoc.com
Sun Nov 16 19:24:24 MSK 2008


On Sunday, November 16, 2008 at 17:23:17, Vladimir Stackov wrote:

>> >> третий (возможно самый правильный) способ обхода этого глюка -
>> >> вместо service nginx restart использовать service nginx reload
>> >> тогда этой проблемы с "падениями" nginx вроде бы не наблюдается.
>> 
>> VS> сейчас init-скрипт на месте, но модифицирован как раз для использования
>> VS> reload вместо restart, поэтому третий вариант действительно самый правильный.
>> 
>> самый-самый правильный способ обхода этого глюка - это чтобы его вообще не было.
>> но сколько я не смотрел в исходники nginx, так и не смог понять причину глюков.

VS> Причина проста - http://sysoev.ru/nginx/docs/control.html
VS> Это даже не проблема. Просто в init-скрипте процесс завершается
VS> с помощью QUIT сигнала. Но даже если TERM посылать, то всё-равно манагер
VS> в некоторых случаях делает start раньше завершения мастер-процесса.

насколько я понимаю, изначально задумывалось
так, чтобы последовательность команд

kill -QUIT `cat /var/run/nginx.pid` ; /usr/sbin/nginx

всегда работала нормально. (?) и насколько мне известно,
при использовании FreeBSD такой проблемы не наблюдается.

для этого, например, новый master пытается несколько раз с паузами
в 500 милисекунд сделать bind, а старый master, сразу как увидит
сигнал QUIT, закрывает listening socket, чтобы не мешать новому.

-- 
Best regards,
 Gena






More information about the nginx-ru mailing list