aboutsummaryrefslogtreecommitdiff
path: root/nginx_unicorn/unicorn_init.sh
diff options
context:
space:
mode:
authorMiquel Sabaté <mikisabate@gmail.com>2011-11-04 20:48:16 +0100
committerMiquel Sabaté <mikisabate@gmail.com>2011-11-04 20:48:16 +0100
commit93de9728efb0e689ce413e980dae685ac0b4b9c3 (patch)
tree18bbb262eeeab567f2438d38c7f8134391a67ad8 /nginx_unicorn/unicorn_init.sh
parent173bf566f6a82d578780fad9b14b42f20b704161 (diff)
downloaddotfiles-93de9728efb0e689ce413e980dae685ac0b4b9c3.tar.gz
dotfiles-93de9728efb0e689ce413e980dae685ac0b4b9c3.zip
Added my nginx/unicorn configuration
Diffstat (limited to 'nginx_unicorn/unicorn_init.sh')
-rwxr-xr-xnginx_unicorn/unicorn_init.sh72
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