"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