Skip to content

Instantly share code, notes, and snippets.

@electronicbites
Last active March 23, 2016 18:47
Show Gist options
  • Save electronicbites/65585894168ff3b70ce7 to your computer and use it in GitHub Desktop.
Save electronicbites/65585894168ff3b70ce7 to your computer and use it in GitHub Desktop.
initd unicorn script fauna
#!/bin/bash
# /etc/init.d/unicorn
# ### BEGIN INIT INFO
# Provides: unicorn
# Required-Start: $network $remote_fs $local_fs
# Required-Stop: $network $remote_fs $local_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Stop/start unicorn
### END INIT INFO
set -e
PROJ_NAME="fauna-reisen.de"
PROJ_DIR="/var/www/vhosts/$PROJ_NAME/app/current"
PID_FILE="$PROJ_DIR/tmp/pids/unicorn.pid"
OLD_PID_FILE="$PID_FILE.oldbin"
TAG='[unicorn]'
UNICORN_CONFIG="config/unicorn.rb"
DEPLOY_USER="rails"
RAILS_ENV="production"
RBENV_ROOT="/home/$DEPLOY_USER/.rbenv"
RBENV_RUBY_VERSION="1.9.3p448"
PATH="$RBENV_ROOT/bin:$RBENV_ROOT/shims:$PATH"
SET_PATH="cd $PROJ_DIR; rbenv rehash; rbenv local $RBENV_RUBY_VERSION"
DAEMON="bundle exec unicorn_rails"
DAEMON_OPTS="-c $PROJ_DIR/$UNICORN_CONFIG -E $RAILS_ENV -D"
CMD="cd $PROJ_DIR && $DAEMON $DAEMON_OPTS"
NAME="unicorn"
DESC="Unicorn app for $APP_NAME"
# Start the service
start() {
if [[ -f $PID_FILE ]]; then
logger -sit $TAG "There is a PID file in $PID_FILE. Service should be running"
exit 1
else
logger -sit "$TAG" "Trying to start server..."
su $DEPLOY_USER -c "$CMD"
if [[ $? == 0 ]]; then
logger -sit "$TAG" "server started"
CMD
logger -sit "$TAG" "FAILED to start server"
exit 1
fi
fi
}
# Stop the service
stop() {
su $DEPLOY_USER -c "kill -TERM $(cat $PID_FILE)"
sleep 2
if [[ ! -f $PID_FILE ]]; then
logger -sit "$TAG" "Server stoped"
else
logger -sit "$TAG" "FAILED to stop server"
exit 1
fi
}
# Reload service
reload() {
logger -sit "$TAG" "Trying to reload server"
kill -USR2 $(cat $PID_FILE)
sleep 1
if [[ -f $OLD_PID_FILE ]]; then
logger -sit "$TAG" "Server reloaded"
else
logger -sit "$TAG" "FAILED to reload server"
exit 1
fi
}
restart() {
logger -sit "$TAG" "Restarting server"
kill -HUP $(cat $PID_FILE)
}
### main logic ###
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
restart
;;
reload)
reload
;;
*)
echo $"Usage: $0 {start|stop|restart|reload}"
exit 1
esac
exit 0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment