#!/usr/bin/env bash cd $(dirname $0)/.. app_root=$(pwd) sidekiq_pidfile="$app_root/tmp/pids/sidekiq.pid" sidekiq_logfile="$app_root/log/sidekiq.log" sidekiq_config="$app_root/config/sidekiq_queues.yml" gitlab_user=$(ls -l config.ru | awk '{print $3}') warn() { echo "$@" 1>&2 } stop() { bundle exec sidekiqctl stop $sidekiq_pidfile >> $sidekiq_logfile 2>&1 } restart() { if [ -f $sidekiq_pidfile ]; then stop fi pkill -u $gitlab_user -f 'sidekiq [0-9]' start_sidekiq -P $sidekiq_pidfile -d -L $sidekiq_logfile "$@" >> $sidekiq_logfile 2>&1 } # Starts on foreground but output to the logfile instead stdout. start_silent() { start_sidekiq "$@" >> $sidekiq_logfile 2>&1 } start_sidekiq() { cmd="exec" chpst=$(command -v chpst) if [ -n "$chpst" ]; then cmd="${cmd} ${chpst} -P" fi ${cmd} bundle exec sidekiq -C "${sidekiq_config}" -e $RAILS_ENV "$@" } case "$1" in stop) stop ;; start) restart "$@" ;; start_silent) warn "Deprecated: Will be removed at 13.0 (see https://gitlab.com/gitlab-org/gitlab/-/issues/196731)." start_silent ;; start_foreground) start_sidekiq "$@" ;; restart) restart "$@" ;; *) echo "Usage: RAILS_ENV= $0 {stop|start|start_silent|start_foreground|restart}" esac