Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re[2]: nginx (FreeBSD port)
Hello Dmitry,
Friday, December 3, 2004, 5:19:43 PM, you wrote:
SAO>> возникло желание дописать следующую фичи:
SAO>> 1) остановка nginx перед удаление порта/пакета
SAO>> 2) запуск nginx после установки порта/пакета
DM> Зачем, если nginx умеет рестартовать при апгрейде бинарника плавно, без
DM> даунтайма?
действительно... можно ведь этот процесс автоматизировать
навскидку (не тестировал)
NGINX_ROOT=/usr/local/nginx
NGINX_LOGS=logs
NGINX_SBIN=sbin
# на солярке родной ps не понимает -awx
PS_CMD=/usr/ucb/ps
NGINX_PID=${NGINX_ROOT}/${NGINX_LOGS}/nginx.pid
NGINX_NEWPID=${NGINX_ROOT}/${NGINX_LOGS}/nginx.pid.newbin
if [ -f ${NGINX_PID} ]; then
PID=`cat ${NGINX_PID}`
echo -n "Graceful change nginx binary... "
kill -USR2 ${PID}
if [ -f ${NGINX_NEWPID} ]; then
kill -WINCH ${PID}
while true; do
NEED_WAIT=`${PS_CMD} -awx|grep "nginx: worker process is shutting
down"`
if [ -z "${NEED_WAIT}" ]; then
break
fi
sleep 1
done
kill -QUIT ${PID}
mv -f ${NGINX_NEWPID} ${NGINX_PID}
NEW_PID=`cat ${NGINX_PID}`
echo "new binary running, pid=${NEW_PID}"
elif
echo "failed, check log files"
fi
fi
--
Best regards,
Alexander mailto:voodoo_alex@xxxxxxx
|