Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Где правильно взять /etc/in it.d/nginx?
On 15.06.2010 17:32, Andrey Zloy wrote:
В варианте скрипта для Gentoo есть приятная реализация апгрейда
nginx'а. Предлагаю включить ее в офф.скрипт, если он будет.
тут есть много избыточных шагов и больших задержек,
по сравнению с эталонной реализацией из nginx makefile:
upgrade:
$NGX_SBIN_PATH -t
kill -USR2 \`cat $NGX_PID_PATH\`
sleep 1
test -f $NGX_PID_PATH.oldbin
kill -QUIT \`cat $NGX_PID_PATH.oldbin\`
P.S. в makefile следующая строка выполняется
только после успешного выполнения предыдущей.
когда я дорабатывал init-скрипт nginx для CentOS,
то просто 1:1 переписал логику работы из makefile:
online_upgrade() {
configtest_q || configtest || return 6
echo -n $"Upgrading $instance: "
kill -USR2 `cat /var/run/$instance.pid`
sleep 1
if test -f /var/run/$instance.pid.oldbin
then
kill -QUIT `cat /var/run/$instance.pid.oldbin`
success $"$instance online upgrade"
echo
else
failure $"$instance online upgrade"
echo
exit 1
fi
}
upgrade() {
configtest || return 1
ebegin "Upgrading nginx"
einfo "Sending USR2 to old binary"
kill -USR2 `cat /var/run/nginx.pid`&>/dev/null
einfo "Sleeping 3 seconds before pid-files checking"
sleep 3
if [ ! -f /var/run/nginx.pid.oldbin ]; then
eerror "File with old pid not found"
return 1
fi
if [ ! -f /var/run/nginx.pid ]; then
eerror "New binary failed to start"
return 1
fi
einfo "Sleeping 3 seconds before WINCH"
sleep 3 ; kill -WINCH `cat /var/run/nginx.pid.oldbin`
einfo "Sending QUIT to old binary"
kill -QUIT `cat /var/run/nginx.pid.oldbin`
einfo "Upgrade completed"
eend $? "Upgrade failed"
}
а этот код наверное написан на основании документации:
http://sysoev.ru/nginx/docs/control.html#upgrade
--
Best regards,
Gena
_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://nginx.org/mailman/listinfo/nginx-ru
|