Re: Nginx не "умирает" корректно

Gena Makhomed gmm at csdoc.com
Mon Apr 27 18:39:59 MSD 2009


On Monday, April 27, 2009 at 13:54:09, Maxim Dounin 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.

будет ли нормальным решением проблемы добавить sleep 1 в функцию restart

restart() {
    configtest || return $?
    stop
    sleep 1
    start
}

или можно придумать что-то лучшее? например, переименовывать
старый pid-файл как можно скорее после получения сигнала
из nginx.pid в nginx.pid.oldbin и потом не спеша удалять
его в момент полного завершения работы старого мастера?

-- 
Best regards,
 Gena






More information about the nginx-ru mailing list