
Me postulo supervisord
para mantener Redis y otras piezas de software en funcionamiento. Sin embargo, por mi vida no puedo ponerme resque-web
a trabajar.
Este es el .ini que estoy incluyendo:
[programa:resque] comando=/usr/local/rvm/gems/ruby-2.0.0-p195/bin/resque-web inicio automático = verdadero inicio automático = verdadero usuario=raíz stdout_logfile=/var/lib/resque/stdout.log stderr_logfile=/var/lib/resque/stderr.log
Desafortunadamente, cuando lo ejecuto service supervisor restart
obtengo lo siguiente en el supervisord
registro:
INFO salió: resque (estado de salida 127; no esperado)
Según Googlecódigo 127es "Comando no encontrado". Sin embargo, si ejecuto ese comando manualmente, el servidor web resque arranca perfectamente con el resultado de:
[2013-05-24 00:03:09 -0600] Iniciando 'resque-web'... [2013-05-24 00:03:09 -0600] probando el puerto 5678...
También vale la pena señalar que veo lo siguiente cuando /var/lib/resque/stderr.log
supervisord intenta iniciar resque-web:
/usr/bin/env: ruby_noexec_wrapper: No existe tal archivo o directorio
Entonces estoy perplejo. Cualquier otro software que haya configurado en supervisord funciona bien. Este es el único que me da dolor de cabeza...
Editar 1
Así que intenté crear un script bash simple para solucionar este problema y ahora aparece un error diferente en el stderr.log
archivo. El .ini que incluyo se cambia para tenercommand=/usr/local/bin/resque-web
/usr/local/bin/resque-web
#!/bin/bash fuente /usr/local/rvm/environments/default resque-web
Error
usr/local/rvm/gems/ruby-2.0.0-p195/gems/vegas-0.1.11/lib/vegas/runner.rb:82:in `app_dir': ni --app-dir ni EVN['HOME '] definido (ArgumentError) de /usr/local/rvm/gems/ruby-2.0.0-p195/gems/vegas-0.1.11/lib/vegas/runner.rb:66:in 'inicializar' de /usr/local/rvm/gems/ruby-2.0.0-p195/gems/resque-1.24.1/bin/resque-web:13:en `nuevo' de /usr/local/rvm/gems/ruby-2.0.0-p195/gems/resque-1.24.1/bin/resque-web:13:en `' desde /usr/local/rvm/gems/ruby-2.0.0-p195/bin/resque-web:23:en `cargar' de /usr/local/rvm/gems/ruby-2.0.0-p195/bin/resque-web:23:en `' de /usr/local/rvm/gems/ruby-2.0.0-p195/bin/ruby_noexec_wrapper:14:en `eval' de /usr/local/rvm/gems/ruby-2.0.0-p195/bin/ruby_noexec_wrapper:14:en `'
Respuesta1
Bueno, parece que el supervisor no funcionará con resque-web ya que es un proceso demonizado. La solución fue crear /etc/cron.d/resque
y poner lo siguiente en él:
SHELL=/bin/bash RUTA=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/rvm/gems/ruby-2.0.0-p195/bin INICIO=/ * * * * * raíz resque-web
Esto se ejecuta cada minuto y reinicia el servidor si falla. ¡Suficientemente bueno para mi!