Iniciar el trabajador Resque con script no funciona, comenzar a mano sí

Iniciar el trabajador Resque con script no funciona, comenzar a mano sí

Estoy tratando de descubrir por qué mi proceso no funciona si se inicia mediante un script, pero funciona bien si se inicia manualmente.

Aquí están los detalles:

El script es un script de inicio de trabajador de rescate. La ubicación del script es /etc/monit/conf.d/start_resque.sh. Los permisos son 755 y son propiedad de ubuntu:ubuntu

Cuando ejecuto el script, la salida del registro obtiene un pid y dice "iniciando trabajador ip-xx-xxx-xxx-xx:26732 (o cualquiera que sea el pid)", sin embargo, cuando ejecuto ps aux | grep 26732, no se muestra nada en ejecución. Cuando ejecuto exactamente el mismo comando a mano en el directorio de mi proyecto Rails, se muestra el mismo resultado de "trabajador inicial", y el proceso realmente se inicia y continúa ejecutándose. Una cosa a tener en cuenta: se muestra una salida adicional si se inicia manualmente: "nohup: ignorando la entrada"

Otra pregunta con la que alguien podría ayudar es por qué BACKGROUND=yes en realidad no demoniza a mi trabajador... por eso estoy recurriendo a nohup, que parece funcionar bien.

Aquí está mi script (el comando que ejecuto manualmente está después del CD):

#!/bin/bash
echo "starting worker.."
workercount="$(ps aux | grep -c resque)"
currentdir="/var/www/apps/myapp/current"
logdir=$currentdir/log/resque_worker.log
pidfile=$currentdir/tmp/pids/resque_worker_$workercount.pid
cd $currentdir
nohup bundle exec rake environment resque:work RAILS_ENV=production QUEUE='*' VERBOSE=1 PIDFILE=$pidfile >> $logdir 2>&1 &
echo "started worker $workercount! view log at $logdir. view pidfile at $pidfile"

Notas adicionales: en Ubuntu 12.04 y estoy conectado sshmientras ejecuto tanto el script como el comando manual.

Respuesta1

Ok, cambié a Sidekiq y "simplemente funciona". Perdí mucho tiempo jugando con el rescate y la implementación, pero gané algo de XP y casi subí de nivel en mi habilidad de administrador de sistemas. Sidekiq parece una mejor opción: aprovecha los hilos y tiene una excelente wiki, una interfaz web actualizada, una opción profesional y un ícono ninja realmente genial en su página de inicio.

información relacionada