Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- ### BEGIN INIT INFO
- # Provides: APPLICATION
- # Required-Start: $all
- # Required-Stop: $network $local_fs $syslog
- # Default-Start: 2 3 4 5
- # Default-Stop: 0 1 6
- # Short-Description: Start the APPLICATION unicorns at boot
- # Description: Enable APPLICATION at boot time.
- ### END INIT INFO
- #
- # Use this as a basis for your own Unicorn init script.
- # Change APPLICATION to match your app.
- # Make sure that all paths are correct.
- set -u
- set -e
- # Change these to match your app:
- USER=USER
- APP_NAME=APPLICATION
- RVM_STRING=1.9.2@$APP_NAME
- APP_ROOT="/srv/$APP_NAME/current"
- PID="/srv/$APP_NAME/shared/pids/$APP_NAME.pid"
- ENV=production
- # assumes multi-user RVM installation
- GEM_HOME="/usr/local/rvm/gems/$RVM_STRING/"
- UNICORN_OPTS="-D -E $ENV -c $APP_ROOT/config/unicorn.rb"
- SET_PATH="cd $APP_ROOT; rvm use $RVM_STRING; export GEM_HOME=$GEM_HOME"
- CMD="$SET_PATH; $GEM_HOME/bin/unicorn $UNICORN_OPTS"
- 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 ${1-help} in
- start)
- sig 0 && echo >&2 "Already running" && exit 0
- su - $USER -c "$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"
- su - $USER -c "$CMD"
- ;;
- upgrade)
- sig USR2 && exit 0
- echo >&2 "Couldn't upgrade, starting '$CMD' instead"
- su - $USER -c "$CMD"
- ;;
- rotate)
- sig USR1 && echo rotated logs OK && exit 0
- echo >&2 "Couldn't rotate logs" && exit 1
- ;;
- *)
- echo >&2 "Usage: $0 <start|stop|restart|upgrade|rotate|force-stop>"
- exit 1
- ;;
- esac
Add Comment
Please, Sign In to add comment