From 93de9728efb0e689ce413e980dae685ac0b4b9c3 Mon Sep 17 00:00:00 2001 From: Miquel Sabaté Date: Fri, 4 Nov 2011 20:48:16 +0100 Subject: Added my nginx/unicorn configuration --- nginx_unicorn/unicorn_init.sh | 72 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100755 nginx_unicorn/unicorn_init.sh (limited to 'nginx_unicorn/unicorn_init.sh') diff --git a/nginx_unicorn/unicorn_init.sh b/nginx_unicorn/unicorn_init.sh new file mode 100755 index 0000000..52ccf9f --- /dev/null +++ b/nginx_unicorn/unicorn_init.sh @@ -0,0 +1,72 @@ +#!/bin/sh +set -e +# Example init script, this can be used with nginx, too, +# since nginx and unicorn accept the same signals + +# Feel free to change any of the following variables for your app: +TIMEOUT=${TIMEOUT-60} +APP_ROOT=/my/app/root +PID=$APP_ROOT/tmp/pids/unicorn.pid +RAILS_ENV="development" +CMD="/usr/bin/unicorn -D -c $APP_ROOT/config/unicorn.rb -E $RAILS_ENV" +action="$1" +set -u + +old_pid="$PID.oldbin" + +cd $APP_ROOT || exit 1 + +sig () { + test -s "$PID" && kill -$1 `cat $PID` +} + +oldsig () { + test -s $old_pid && kill -$1 `cat $old_pid` +} + +case $action in +start) + sig 0 && echo >&2 "Already running" && exit 0 + su -c "$CMD" - mssola + ;; +stop) + sig QUIT && exit 0 + echo >&2 "Not running" + ;; +force-stop) + sig TERM && exit 0 + echo >&2 "Not running" + ;; +restart|reload) + sig HUP && echo reloaded OK && exit 0 + echo >&2 "Couldn't reload, starting '$CMD' instead" + su -c "$CMD" - mssola + ;; +upgrade) + if sig USR2 && sleep 2 && sig 0 && oldsig QUIT + then + n=$TIMEOUT + while test -s $old_pid && test $n -ge 0 + do + printf '.' && sleep 1 && n=$(( $n - 1 )) + done + echo + + if test $n -lt 0 && test -s $old_pid + then + echo >&2 "$old_pid still exists after $TIMEOUT seconds" + exit 1 + fi + exit 0 + fi + echo >&2 "Couldn't upgrade, starting '$CMD' instead" + su -c "$CMD" - mssola + ;; +reopen-logs) + sig USR1 + ;; +*) + echo >&2 "Usage: $0 " + exit 1 + ;; +esac -- cgit v1.2.3