Adicionando resque-web ao Supervisord

1

Estou executando supervisord para manter o Redis e outros softwares funcionando. No entanto, não posso, por minha vida, fazer com que resque-web funcione.

Este é o arquivo .ini que estou incluindo:

[program:resque]
command=/usr/local/rvm/gems/ruby-2.0.0-p195/bin/resque-web
autostart=true
autorestart=true
user=root
stdout_logfile=/var/lib/resque/stdout.log
stderr_logfile=/var/lib/resque/stderr.log

Infelizmente, quando executo service supervisor restart , obtenho o seguinte no supervisord log:

INFO exited: resque (exit status 127; not expected)

De acordo com o código do Google 127 está "Comando não encontrado". No entanto, se eu executar esse comando manualmente, o servidor resque-web inicializa muito bem com a saída de:

[2013-05-24 00:03:09 -0600] Starting 'resque-web'...
[2013-05-24 00:03:09 -0600] trying port 5678...

Também é importante notar que vejo o seguinte no /var/lib/resque/stderr.log quando o supervisord tenta iniciar o resque-web:

/usr/bin/env: ruby_noexec_wrapper: No such file or directory

Então estou perplexo. Todos os outros softwares que eu configurei no supervisord funcionam muito bem. Este é o único que me dá dor de cabeça ...

Editar 1

Então, tentei criar um script bash simples para contornar isso e agora obtenho um erro diferente no arquivo stderr.log . O .ini que eu incluo é alterado para ter command=/usr/local/bin/resque-web

/ usr / local / bin / resque-web

#!/bin/bash
source /usr/local/rvm/environments/default
resque-web

Erro

usr/local/rvm/gems/ruby-2.0.0-p195/gems/vegas-0.1.11/lib/vegas/runner.rb:82:in 'app_dir': nor --app-dir neither EVN['HOME'] defined (ArgumentError)
        from /usr/local/rvm/gems/ruby-2.0.0-p195/gems/vegas-0.1.11/lib/vegas/runner.rb:66:in 'initialize'
        from /usr/local/rvm/gems/ruby-2.0.0-p195/gems/resque-1.24.1/bin/resque-web:13:in 'new'
        from /usr/local/rvm/gems/ruby-2.0.0-p195/gems/resque-1.24.1/bin/resque-web:13:in ''
        from /usr/local/rvm/gems/ruby-2.0.0-p195/bin/resque-web:23:in 'load'
        from /usr/local/rvm/gems/ruby-2.0.0-p195/bin/resque-web:23:in ''
        from /usr/local/rvm/gems/ruby-2.0.0-p195/bin/ruby_noexec_wrapper:14:in 'eval'
        from /usr/local/rvm/gems/ruby-2.0.0-p195/bin/ruby_noexec_wrapper:14:in ''
    
por Andrew Ellis 24.05.2013 / 08:04

1 resposta

0

Bem, parece que o supervisor não funciona com o resque-web, pois é um processo de daemonização. A solução foi criar /etc/cron.d/resque e colocar o seguinte:

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/rvm/gems/ruby-2.0.0-p195/bin
HOME=/
* * * * * root resque-web

Isso é executado a cada minuto e reinicia o servidor se ele falhar. Bom o suficiente para mim!

    
por 24.05.2013 / 19:15