"service nginx restart" vs "service nginx reload"

Gena Makhomed gmm at csdoc.com
Mon May 19 05:16:22 MSD 2008


Здравствуйте, 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
        ;;
        
=======================================================================

-- 
С уважением,
 Gena                          mailto:gmm at csdoc.com






More information about the nginx-ru mailing list