Welcome! Log In Create A New Profile

Advanced

Re: Где правильно взять /etc/init.d/nginx?

Gena Makhomed
June 15, 2010 11:24AM
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@nginx.org
http://nginx.org/mailman/listinfo/nginx-ru
Subject Author Posted

Где правильно взять /etc/init.d/nginx?

vgoncharov June 13, 2010 07:42AM

Re: Где правильно взять /etc/init.d/nginx?

Boris Dolgov June 13, 2010 08:00AM

Re: Где правильно взять /etc/init.d/nginx?

Anton Bessonov June 13, 2010 08:54AM

Re: Где правильно взять /etc/init.d/nginx?

Igor Sysoev June 13, 2010 09:04AM

Re: Где правильно взять /etc/init.d/nginx?

Anton Bessonov June 13, 2010 09:14AM

Re: Где правильно взять /etc/init.d/nginx?

Gena Makhomed June 13, 2010 04:02PM

Re: Где правильно взять /etc/init.d/nginx?

Gena Makhomed June 13, 2010 04:02PM

Re: Где правильно взять /etc/init.d/nginx?

Craken June 13, 2010 08:49AM

Re: Где правильно взять /etc/init.d/nginx?

Anton Bessonov June 13, 2010 09:04AM

Re: Где правильно взять /etc/init.d/nginx?

Craken June 13, 2010 09:54AM

Re: Где правильно взять /etc/init.d/nginx?

Igor Sysoev June 13, 2010 09:04AM

Re: Где правильно взять /etc/init.d/nginx?

Gena Makhomed June 13, 2010 04:24PM

Re: Где правильно взять /etc/init.d/nginx?

jch June 14, 2010 06:03AM

Re: Где правильно взять /etc/init.d/nginx?

Gena Makhomed June 14, 2010 07:42AM

Re: Где правильно взять /etc/init.d/nginx?

Andrey Zloy June 15, 2010 10:34AM

Re: Где правильно взять /etc/init.d/nginx?

Gena Makhomed June 15, 2010 11:24AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 266
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready