मैंने एक छोटा सा हैंडलर लिखा है जो साइडकीक को शुरू या बंद कर सकता है।
start_stop_sidekiq.sh
#!/bin/bash
cmd=$1
PROJECT_DIR=$2
PIDFILE=$PROJECT_DIR/tmp/pids/sidekiq.pid
cd $PROJECT_DIR
start_function(){
LOGFILE=$PROJECT_DIR/log/sidekiq.log
echo "Starting sidekiq..."
bundle exec sidekiq -d -L $LOGFILE -P $PIDFILE -q mailer,5 -q default -e production
}
stop_function(){
if [ ! -f $PIDFILE ]; then
ps -ef | grep sidekiq | grep busy | grep -v grep | awk '{print $2}' > $PIDFILE
fi
bundle exec sidekiqctl stop $PIDFILE
}
case "$cmd" in
start)
start_function
;;
stop)
stop_function
;;
restart)
stop_function && start_function;
;;
*)
echo $"Usage: $0 {start|stop|restart} /path/to/rails/app"
esac
यह सहेजें, प्रकार chmod +x start_stop_sidekiq.sh
। तो बस के साथ इसे चलाने:
bash start_stop_sidekiq.sh start /path/to/your/rails/app
या
bash start_stop_sidekiq.sh stop /path/to/your/rails/app
आप केवल एक रेल एप्लिकेशन है, तो आप भी $ PROJECT_DIR चर स्थिर सेट कर सकते हैं, ताकि आप की जरूरत नहीं है प्रत्येक बार पथ निर्दिष्ट करने के लिए। उम्मीद है की यह मदद करेगा!
मार 'PROCESS_ID' ठीक काम किया, इस प्रक्रिया को मारने के लिए। फिर साइडकीक को पुनरारंभ करना फिर भी लालसा नहीं मिल रहा है। – user1627827
इसके अलावा, 'kill -term pid' इसे अगले 10 सेकंड में शानदार रूप से बंद कर देगा। –