Created

Embed URL

HTTPS clone URL

SSH clone URL

You can clone with HTTPS or SSH.

Download Gist

Post Installation script from debian that upgrades Nginx the proper way, i.e., without downtime

View upgrade_nginx.sh
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
#!/bin/sh
 
set -e
 
case "$1" in
configure)
if [ -z $2 ] && [ ! -e /etc/nginx/sites-enabled/default ] ;
then
ln -s /etc/nginx/sites-available/default /etc/nginx/sites-enabled/default
fi
;;
abort-upgrade|abort-remove|abort-deconfigure)
;;
*)
echo "postinst called with unknown argument \`$1'" >&2
exit 1
;;
esac
 
if [ -x /etc/init.d/nginx ]
then
if [ -f /var/run/nginx.pid ] && pidof /usr/sbin/nginx >/dev/null
then
echo "Trying a soft restart"
NGX_PID=`cat /var/run/nginx.pid`
if kill -s USR2 $NGX_PID 2>/dev/null
then
echo "PID IS RIGHT"
while [ ! -f /var/run/nginx.pid.oldbin ]
do
echo "WAITING"
cnt=`expr $cnt + 1`
if [ $cnt -gt 10 ]
then
echo "Nginx 'soft' update failed, doing restart"
kill -s KILL $NGX_PID
invoke-rc.d nginx start
exit 0
fi
sleep 1
done
echo "QUIT"
NGX_OLD_PID=`cat /var/run/nginx.pid.oldbin`
kill -s QUIT $NGX_OLD_PID
fi
fi
fi
 
#DEBHELPER#
 
exit 0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.