Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Nginx не "умирает" корректно
On Monday, April 27, 2009 at 18:16:27, Igor Sysoev wrote:
>> >> > restart() {
>> >> > configtest || return $?
>> >> > stop
>> >> > start
>> >> > }
>>
>> MD> Кроме того, старый процесс после окончания завершения удалит
>> MD> pid-файл, и это скорее всего уже будет pid-файл нового процесса.
>>
>> похоже что причина глюка в другом: новый nginx не будет запускаться
>> командой "daemon $nginx -c $NGINX_CONF_FILE" если старый nginx не успел
>> удалить свой pid-файл. [ функция daemon() из /etc/init.d/functions ]
>>
>> этот init-скрипт для nginx используется в CentOS, EPEL, Fedora.
>> хотелось бы сделать какое-то нормальное решение а не ugly hack.
>>
...
>>
>> или можно придумать что-то лучшее? например, переименовывать
>> старый pid-файл как можно скорее после получения сигнала
>> из nginx.pid в nginx.pid.oldbin и потом не спеша удалять
>> его в момент полного завершения работы старого мастера?
IS> В смысле переименовывать самому nginx'у ?
IS> По-моему, нужно лечить скрипты: у nginx'а сигналами всё нормально.
Ok. поправил ошибку в init-скрипте, отправил патч мантейнеру пакета.
- killproc $prog -QUIT
+ killproc $prog
заодно добавил в init-script поддержку для "upgrade server on the fly".
IS> Для быстрого завершения есть -TERM.
IS> Для загрузки новой конфигурации есть -HUP.
IS> Зачем нужен restart, я не понимаю.
в основном - это для LSB-совместимости.
http://refspecs.linux-foundation.org/LSB_3.2.0/LSB-Core-generic/LSB-Core-generic/iniscrptact.html
а так - "service nginx reload" действительно гораздо лучше, чем "service nginx
restart".
P.S.
возможно есть какие-то изменения в конфигурации, после которых "service nginx
reload"
не сработает, а сработает только "service nginx upgrade" или "service nginx
restart".
--
Best regards,
Gena Attachment:
nginx.spec.patch
Description: Binary data
Attachment:
nginx.init
Description: Binary data
Attachment:
nginx.init.orig
Description: Binary data
Attachment:
nginx.init.patch
Description: Binary data
|