|
|
@@ -0,0 +1,80 @@
|
|
|
+#!/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=`pwd`
|
|
|
+PID=$APP_ROOT/tmp/pids/unicorn.pid
|
|
|
+PORT=6872
|
|
|
+MODE=production
|
|
|
+#MODE=development
|
|
|
+#MODE="test"
|
|
|
+#CMD="/usr/bin/unicorn -D -c $APP_ROOT/config/unicorn.rb"
|
|
|
+# bundle exec rake assets:precompile
|
|
|
+CMD="unicorn_rails -c $APP_ROOT/config/unicorn.rb -E $MODE -p $PORT -D"
|
|
|
+#INIT_CONF=$APP_ROOT/config/init.conf
|
|
|
+action="$1"
|
|
|
+set -u
|
|
|
+
|
|
|
+#test -f "$INIT_CONF" && . $INIT_CONF
|
|
|
+
|
|
|
+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
|
|
|
+ $CMD
|
|
|
+ ;;
|
|
|
+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"
|
|
|
+ $CMD
|
|
|
+ ;;
|
|
|
+upgrade|r)
|
|
|
+ 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"
|
|
|
+ # $CMD
|
|
|
+ ;;
|
|
|
+reopen-logs)
|
|
|
+ sig USR1
|
|
|
+ ;;
|
|
|
+*)
|
|
|
+ echo >&2 "Usage: $0 <start|stop|restart|upgrade(r)|force-stop|reopen-logs>"
|
|
|
+ exit 1
|
|
|
+ ;;
|
|
|
+esac
|