"service nginx restart" vs "service nginx reload"

Viatcheslav E. Kouznetsov slava at auto.ru
Mon May 19 10:37:09 MSD 2008


Ну...nginx тут собственно ни при чем...
Можно выложить код стопа ?

On Monday 19 May 2008 05:16, Gena Makhomed wrote:
> Здравствуйте, All.
>
> =======================================================================
>
> один глюк неприятный заметил, практически во всех сборках nginx
> под linux - команда service nginx restart срабатывает через раз:
>
> restart() {
>     configtest || return $?
>     stop
>     start
> }
>
> подозреваю, что причина здесь в том, что старый nginx еще не успел
> завершиться, а новый не сможет нормально стартануть пока не завершен
> старый. как workaround помогает вставить sleep 1|2|3 между stop и start.
> но мне этот вариант не очень нравится. или это единственное,
> что можно сделать в этой ситуации? такая ошибка проявляется
> в nginx из fedora/epel, ищу как лучше всего ее пофиксить.
>
> =======================================================================
>
> кстати, в каких случаях вместо "service nginx restart"
> можно использовать "service nginx reload" ?
>
> reload() {
>     configtest || return $?
>     echo -n $"Reloading $prog: "
>     killproc $nginx -HUP
>     RETVAL=$?
>     echo
> }
>
> и в каких случаях обязательно нужно делать полный restart ?
>
> =======================================================================
>
> вот такой код в init-скрипте
>
> force_reload() {
>     restart
> }
>
> говорит о том, что force_reload всегда идентично restart.
> если бы "service nginx restart" было бы всегда идентично
> "service nginx reload", то init-скрипт выглядел бы так:
>
> restart() {
>     reload
> }
>
> но если nginx вообще не запущен, то в теперешней реализации
> сервиса "service nginx restart" приведет к его запуску,
> а "service nginx reload" - нет. кроме того, обновление
> пакета nginx в fedora/epel реализовано через condrestart:
>
> %postun
> if [ $1 -ge 1 ]; then
>     /sbin/service %{name} condrestart > /dev/null 2>&1 || :
> fi
>
>   condrestart|try-restart)
>         [ ! -f $lockfile ] || restart
>         ;;
>
> =======================================================================


More information about the nginx-ru mailing list