下記ファイル を /etc/init.d/ に配置する。
SERVICE="unicorn"
ENV="production"
RAILS_ROOT="/var/www/app/current"
CONFIG=$RAILS_ROOT"/config/unicorn/"$ENV".rb"
PID_FILE=$RAILS_ROOT"/tmp/pids/unicorn.pid"
start() {
START_CMD="cd $RAILS_ROOT && (RAILS_ENV=$ENV /usr/bin/env bundle exec unicorn -c $CONFIG -E $ENV -D)"
su -l $USER -c "$START_CMD" &
echo "service $SERVICE [start]"
}
stop() {
STOP_CMD="cd $RAILS_ROOT && /usr/bin/env kill -s QUIT `cat $PID_FILE`"
su -l $USER -c "$STOP_CMD" &
echo "service $SERVICE [stop]"
}
status() {
PID=`pgrep -f $CONFIG | wc -l`
if [ $PID -eq 0 ]; then
echo "$SERVICE stop"
else
echo "running $SERVICE ..."
fi
}
case $1 in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
status)
status
;;
*)
echo "Usage: $SERVICE [start|stop|restart|status]"
;;
esac
exit 0