diff options
| author | Miquel Sabaté <mikisabate@gmail.com> | 2011-11-04 20:48:16 +0100 |
|---|---|---|
| committer | Miquel Sabaté <mikisabate@gmail.com> | 2011-11-04 20:48:16 +0100 |
| commit | 93de9728efb0e689ce413e980dae685ac0b4b9c3 (patch) | |
| tree | 18bbb262eeeab567f2438d38c7f8134391a67ad8 /nginx_unicorn/unicorn_init.sh | |
| parent | 173bf566f6a82d578780fad9b14b42f20b704161 (diff) | |
| download | dotfiles-93de9728efb0e689ce413e980dae685ac0b4b9c3.tar.gz dotfiles-93de9728efb0e689ce413e980dae685ac0b4b9c3.zip | |
Added my nginx/unicorn configuration
Diffstat (limited to 'nginx_unicorn/unicorn_init.sh')
| -rwxr-xr-x | nginx_unicorn/unicorn_init.sh | 72 |
1 files changed, 72 insertions, 0 deletions
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 <start|stop|restart|upgrade|force-stop|reopen-logs>" + exit 1 + ;; +esac |
