ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

"service nginx restart" vs "service nginx reload"


  • To: nginx-ru@xxxxxxxxx
  • Subject: "service nginx restart" vs "service nginx reload"
  • From: Gena Makhomed <gmm@xxxxxxxxx>
  • Date: Mon, 19 May 2008 04:16:22 +0300
  • Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=csdoc.com; s=dkim; t=1211160542; bh=zJNskD/tW0hI64lDwx1xLK0k/qWg1bAxPib65Ugjr58=; h=Date:From:X-Mailer:X-Priority:Message-ID:To:Subject:MIME-Version: Content-Type:Content-Transfer-Encoding; b=R7T2DV7h3SaCLAbJa68ecJZy ADD0phEZfFs1gIskwy3xt5Yv7s0y9/aO0CXUjFM/mEowFSJlqsmDeg2xdqU1MwwwIE3 DMtpJRTRpYjNG3fH4BIt3otyzXDyY+vSuSig16mpAhdtZzFo3missxCnYnQSor+sx6Y oj8aw5/8i0R7U=

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




 




Copyright © Lexa Software, 1996-2009.