Skip to content

Instantly share code, notes, and snippets.

@vortizhe
Created May 25, 2015 09:13
Show Gist options
  • Save vortizhe/f1bc1391c55d644cd2fa to your computer and use it in GitHub Desktop.
Save vortizhe/f1bc1391c55d644cd2fa to your computer and use it in GitHub Desktop.
Sidekiq init.d
#!/bin/bash
# sidekiq Init script for Sidekiq
# chkconfig: 345 100 75
#
# Description: Starts and Stops Sidekiq message processor for Stratus application.
#
# User-specified exit parameters used in this script:
#
# Exit Code 5 - Incorrect User ID
# Exit Code 6 - Directory not found
# You will need to modify these
APP="{{ app_name }}"
AS_USER="{{ deploy_user }}"
APP_DIR="{{ app_directory }}/current"
LOG_FILE="$APP_DIR/log/sidekiq.log"
LOCK_FILE="$APP_DIR/tmp/pids/sidekiq-${APP}-lock"
PID_FILE="$APP_DIR/tmp/pids/sidekiq-${APP}.pid"
SIDEKIQ="sidekiq"
APP_ENV="production"
BUNDLE="bundle"
START_CMD="$BUNDLE exec $SIDEKIQ -e $APP_ENV -P $PID_FILE -C ${APP_DIR}/config/sidekiq.yml"
CMD="cd ${APP_DIR}; ${START_CMD} >> ${LOG_FILE} 2>&1 &"
RETVAL=0
start() {
status
if [ $? -eq 1 ]; then
[ `id -u` == '0' ] || (echo >&2 "$SIDEKIQ runs as root only ..."; exit 5)
[ -d $APP_DIR ] || (echo >&2 "$APP_DIR not found!... Exiting"; exit 6)
cd $APP_DIR
echo >&2 "Starting $SIDEKIQ message processor ..."
su -c "$CMD" - $AS_USER
RETVAL=$?
sleep 8
[ $RETVAL -eq 0 ] && touch $LOCK_FILE
return $RETVAL
else
echo >&2 "$SIDEKIQ message processor is already running ..."
fi
}
stop() {
status
if [ $? -eq 0 ]; then
echo >&2 "Stopping sidekiq message processor ..."
SIG="INT"
kill -$SIG `cat $PID_FILE`
RETVAL=$?
[ $RETVAL -eq 0 ] && rm -f $LOCK_FILE
return $RETVAL
else
echo >&2 "Sidekiq message processor is stopped already ..."
fi
}
status() {
ps -ef | grep 'sidekiq [0-9].[0-9].[0-9]' | grep -v grep
return $?
}
restart() {
if [ -f $LOCK_FILE ]; then
stop
fi
echo >&2 "Waiting while stopping ..."
sleep 4
start
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
restart
;;
status)
status
if [ $? -eq 0 ]; then
echo >&2 "$SIDEKIQ message processor is running ..."
RETVAL=0
else
echo >&2 "$SIDEKIQ message processor is stopped ..."
RETVAL=1
fi
;;
*)
echo >&2 "Usage: $0 {start|stop|restart|status}"
exit 0
;;
esac
exit $RETVAL
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment