70 lines
1.6 KiB
Bash
70 lines
1.6 KiB
Bash
#!/bin/sh
|
|
### BEGIN INIT INFO
|
|
# Provides: unicorn
|
|
# Required-Start: $all
|
|
# Required-Stop: $all
|
|
# Default-Start: 2 3 4 5
|
|
# Default-Stop: 0 1 6
|
|
# Short-Description: starts the unicorn app server
|
|
# Description: starts unicorn using start-stop-daemon
|
|
### END INIT INFO
|
|
|
|
set -e
|
|
USAGE="Usage: $0 <start|stop|restart|upgrade|rotate|force-stop>"
|
|
|
|
# app settings
|
|
USER="ubuntu"
|
|
APP_NAME="nemo_encoder_production"
|
|
APP_ROOT="/home/$USER/apps/$APP_NAME/current"
|
|
ENV="production"
|
|
|
|
# environment settings
|
|
PATH="/home/$USER/.rbenv/shims:/home/$USER/.rbenv/bin:$PATH"
|
|
CMD="/home/$USER/.rbenv/shims/unicorn_rails -c $APP_ROOT/config/unicorn.rb -E $ENV -D"
|
|
PID="$APP_ROOT/pids/unicorn.nemo.pid"
|
|
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 in
|
|
start)
|
|
sig 0 && echo >&2 "Already running" && exit 0
|
|
echo "Starting $APP_NAME"
|
|
su - $USER -c "$CMD"
|
|
;;
|
|
stop)
|
|
echo "Stopping $APP_NAME"
|
|
sig QUIT && exit 0
|
|
echo >&2 "Not running"
|
|
;;
|
|
force-stop)
|
|
echo "Force stopping $APP_NAME"
|
|
sig TERM && exit 0
|
|
echo >&2 "Not running"
|
|
;;
|
|
restart|reload|upgrade)
|
|
sig USR2 && echo "reloaded $APP_NAME" && exit 0
|
|
echo >&2 "Couldn't reload, starting '$CMD' instead"
|
|
$CMD
|
|
;;
|
|
rotate)
|
|
sig USR1 && echo rotated logs OK && exit 0
|
|
echo >&2 "Couldn't rotate logs" && exit 1
|
|
;;
|
|
*)
|
|
echo >&2 $USAGE
|
|
exit 1
|
|
;;
|
|
esac
|
|
|