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
|