2015-04-26 12:48:37 +05:30
|
|
|
#!/bin/sh
|
2014-09-02 18:07:02 +05:30
|
|
|
|
|
|
|
cd $(dirname $0)/..
|
|
|
|
app_root=$(pwd)
|
|
|
|
sidekiq_pidfile="$app_root/tmp/pids/sidekiq.pid"
|
|
|
|
sidekiq_logfile="$app_root/log/sidekiq.log"
|
2016-11-03 12:29:30 +05:30
|
|
|
sidekiq_config="$app_root/config/sidekiq_queues.yml"
|
2014-09-02 18:07:02 +05:30
|
|
|
gitlab_user=$(ls -l config.ru | awk '{print $3}')
|
|
|
|
|
2015-04-26 12:48:37 +05:30
|
|
|
warn()
|
2014-09-02 18:07:02 +05:30
|
|
|
{
|
|
|
|
echo "$@" 1>&2
|
|
|
|
}
|
|
|
|
|
2015-04-26 12:48:37 +05:30
|
|
|
stop()
|
2014-09-02 18:07:02 +05:30
|
|
|
{
|
|
|
|
bundle exec sidekiqctl stop $sidekiq_pidfile >> $sidekiq_logfile 2>&1
|
|
|
|
}
|
|
|
|
|
2015-04-26 12:48:37 +05:30
|
|
|
killall()
|
2014-09-02 18:07:02 +05:30
|
|
|
{
|
|
|
|
pkill -u $gitlab_user -f 'sidekiq [0-9]'
|
|
|
|
}
|
|
|
|
|
2015-04-26 12:48:37 +05:30
|
|
|
restart()
|
2014-09-02 18:07:02 +05:30
|
|
|
{
|
|
|
|
if [ -f $sidekiq_pidfile ]; then
|
|
|
|
stop
|
|
|
|
fi
|
|
|
|
killall
|
2016-01-19 16:12:03 +05:30
|
|
|
start_sidekiq -d -L $sidekiq_logfile >> $sidekiq_logfile 2>&1
|
2014-09-02 18:07:02 +05:30
|
|
|
}
|
|
|
|
|
2015-04-26 12:48:37 +05:30
|
|
|
start_no_deamonize()
|
2014-09-02 18:07:02 +05:30
|
|
|
{
|
2016-01-19 16:12:03 +05:30
|
|
|
start_sidekiq >> $sidekiq_logfile 2>&1
|
2014-09-02 18:07:02 +05:30
|
|
|
}
|
|
|
|
|
2015-04-26 12:48:37 +05:30
|
|
|
start_sidekiq()
|
2014-09-02 18:07:02 +05:30
|
|
|
{
|
2019-07-07 11:18:12 +05:30
|
|
|
cmd="exec"
|
|
|
|
chpst=$(which chpst)
|
|
|
|
|
|
|
|
if [ -n "$chpst" ]; then
|
|
|
|
cmd="${cmd} ${chpst} -P"
|
|
|
|
fi
|
|
|
|
|
|
|
|
${cmd} bundle exec sidekiq -C "${sidekiq_config}" -e $RAILS_ENV -P $sidekiq_pidfile "$@"
|
2014-09-02 18:07:02 +05:30
|
|
|
}
|
|
|
|
|
2015-04-26 12:48:37 +05:30
|
|
|
load_ok()
|
2014-09-02 18:07:02 +05:30
|
|
|
{
|
|
|
|
sidekiq_pid=$(cat $sidekiq_pidfile)
|
2015-04-26 12:48:37 +05:30
|
|
|
if [ -z "$sidekiq_pid" ] ; then
|
2014-09-02 18:07:02 +05:30
|
|
|
warn "Could not find a PID in $sidekiq_pidfile"
|
|
|
|
exit 0
|
|
|
|
fi
|
|
|
|
|
|
|
|
if (ps -p $sidekiq_pid -o args | grep '\([0-9]\+\) of \1 busy' 1>&2) ; then
|
|
|
|
warn "Too many busy Sidekiq workers"
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
|
|
|
|
exit 0
|
|
|
|
}
|
|
|
|
|
|
|
|
case "$1" in
|
|
|
|
stop)
|
|
|
|
stop
|
|
|
|
;;
|
|
|
|
start)
|
|
|
|
restart
|
|
|
|
;;
|
|
|
|
start_no_deamonize)
|
|
|
|
start_no_deamonize
|
|
|
|
;;
|
2016-01-19 16:12:03 +05:30
|
|
|
start_foreground)
|
|
|
|
start_sidekiq
|
|
|
|
;;
|
2014-09-02 18:07:02 +05:30
|
|
|
restart)
|
|
|
|
restart
|
|
|
|
;;
|
|
|
|
killall)
|
|
|
|
killall
|
|
|
|
;;
|
|
|
|
load_ok)
|
|
|
|
load_ok
|
|
|
|
;;
|
|
|
|
*)
|
|
|
|
echo "Usage: RAILS_ENV=your_env $0 {stop|start|start_no_deamonize|restart|killall|load_ok}"
|
|
|
|
esac
|