Created
June 26, 2015 17:35
-
-
Save azvoleff/571d9780a67793fa9b8c to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #!/bin/sh | |
| # | |
| # chkconfig: - 85 15 | |
| ROOT="/home/ubuntu/cartodb" | |
| USER="ubuntu" | |
| ENVIRONMENT="development" | |
| QUEUES="*" | |
| COUNT=1 | |
| RUBY="ruby-1.9.3-p327@global" | |
| GEMS="/usr/local/rvm/gems/$RUBY/bin" | |
| RUBY_ENV="/usr/local/rvm/environments/$RUBY" | |
| BUNDLER="$GEMS/bundle" | |
| RAKE="$GEMS/rake" | |
| PID_DIR="$ROOT/tmp/pids" | |
| LOG_DIR="$ROOT/log" | |
| WORKER_PID="$PID_DIR/resque_worker.%d.pid" | |
| WORKER_LOG="$LOG_DIR/resque_worker.%d.log" | |
| SCHEDULER_PID="$PID_DIR/resque_scheduler.pid" | |
| SCHEDULER_LOG="$LOG_DIR/resque_scheduler.log" | |
| start() { | |
| local program | |
| local options | |
| source $RUBY_ENV | |
| cd $ROOT | |
| if [ -f $ROOT/Gemfile.lock ]; then | |
| program="$BUNDLER exec rake" | |
| else | |
| program="$RAKE" | |
| fi | |
| options="RAILS_ENV=$ENVIRONMENT QUEUES=$QUEUES BACKGROUND=yes" | |
| for i in $(seq 1 $COUNT); do | |
| if [ "$1" = "$i" ] || [ "$#" -eq 0 ]; then | |
| pidfile=$(printf $WORKER_PID $i) | |
| logfile=$(printf $WORKER_LOG $i) | |
| #echo $program $options | |
| echo -n "Starting worker $i ..." | |
| daemon --user $USER "$program resque:work $options PIDFILE=$pidfile 2>&1 >> $logfile" | |
| RETVAL=$? | |
| if [ $RETVAL -eq 0 ]; then | |
| echo "Started worker." | |
| else | |
| echo "Failed to start worker." | |
| fi | |
| echo | |
| fi | |
| done | |
| if [ "$1" = "scheduler" ] || [ "$#" -eq 0 ]; then | |
| echo -n "Starting scheduler..." | |
| daemon --user $USER "$program resque:scheduler $options PIDFILE=$SCHEDULER_PID 2>&1 >> $SCHEDULER_LOG" | |
| RETVAL=$? | |
| if [ $RETVAL -eq 0 ]; then | |
| echo "Started scheduler." | |
| else | |
| echo "Failed to start scheduler." | |
| fi | |
| echo | |
| fi | |
| } | |
| stop() { | |
| local pidfile | |
| for i in $(seq 1 $COUNT); do | |
| if [ "$1" = "$i" ] || [ "$#" -eq 0 ]; then | |
| echo -n "Stopping worker $i ..." | |
| pidfile=$(printf $WORKER_PID $i) | |
| if [ -f $pidfile ]; then | |
| kill -9 $(cat $pidfile) | |
| RETVAL=$? | |
| else | |
| RETVAL=1 | |
| fi | |
| if [ $RETVAL -eq 0 ]; then | |
| rm -f $pidfile | |
| echo "Stopped worker." | |
| else | |
| echo "Failed to stop worker." | |
| fi | |
| echo | |
| fi | |
| done | |
| if [ "$1" = "scheduler" ] || [ "$#" -eq 0 ]; then | |
| echo -n "Stopping scheduler..." | |
| if [ -f $SCHEDULER_PID ]; then | |
| kill -9 $(cat $SCHEDULER_PID) | |
| RETVAL=$? | |
| else | |
| RETVAL=1 | |
| fi | |
| if [ $RETVAL -eq 0 ]; then | |
| echo "Stopped scheduler." | |
| rm -f $SCHEDULER_PID | |
| else | |
| echo "Failed to stop scheduler." | |
| fi | |
| echo | |
| fi | |
| } | |
| status() { | |
| local pidfile | |
| for i in $(seq 1 $COUNT); do | |
| if [ "$1" = "$i" ] || [ "$#" -eq 0 ]; then | |
| echo -n "worker $i" | |
| pidfile=$(printf $WORKER_PID $i) | |
| if [ -f $pidfile ]; then | |
| echo | |
| ps -fp $(cat $pidfile) | |
| else | |
| echo " - not running" | |
| fi | |
| fi | |
| done | |
| if [ "$1" = "scheduler" ] || [ "$#" -eq 0 ]; then | |
| echo -n "scheduler" | |
| if [ -f $SCHEDULER_PID ]; then | |
| echo | |
| ps -fp $(cat $SCHEDULER_PID) | |
| else | |
| echo " - not running" | |
| fi | |
| fi | |
| } | |
| case "$1" in | |
| start) start $2 ;; | |
| stop) stop $2 ;; | |
| restart|force-reload) | |
| stop $2 | |
| sleep 1 | |
| start $2 | |
| ;; | |
| status) status $2 ;; | |
| *) | |
| echo "Usage: $0 {start|stop|restart|force-reload|status}" >&2 | |
| exit 1 | |
| ;; | |
| esac |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment