ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
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


 




Copyright © Lexa Software, 1996-2009.