Supervisord에 resque-web 추가하기

Supervisord에 resque-web 추가하기

저는 supervisordRedis와 기타 소프트웨어를 계속해서 실행하기 위해 노력하고 있습니다. 그러나 나는 평생 resque-web직장에 갈 수 없습니다.

내가 포함하는 .ini는 다음과 같습니다.

[프로그램:resque]
명령=/usr/local/rvm/gems/ruby-2.0.0-p195/bin/resque-web
자동 시작=true
자동 재시작=true
사용자=루트
stdout_logfile=/var/lib/resque/stdout.log
stderr_logfile=/var/lib/resque/stderr.log

불행히도 실행하면 로그 service supervisor restart에 다음이 표시됩니다 supervisord.

INFO 종료됨: resque(종료 상태 127, 예상되지 않음)

구글에 따르면코드 127"명령을 찾을 수 없습니다"입니다. 그러나 해당 명령을 수동으로 실행하면 resque-web 서버가 다음 출력과 함께 정상적으로 부팅됩니다.

[2013-05-24 00:03:09 -0600] 'resque-web'을 시작합니다...
[2013-05-24 00:03:09 -0600] 포트 5678을 시도 중입니다...

/var/lib/resque/stderr.logSupervisord가 resque-web을 시작하려고 할 때 다음이 표시된다는 점도 주목할 가치가 있습니다 .

/usr/bin/env: ruby_noexec_wrapper: 해당 파일이나 디렉터리가 없습니다.

그래서 나는 당황했습니다. 내가 Supervisord에서 구성한 다른 모든 소프트웨어는 정상적으로 작동합니다. 나에게 두통을 주는 유일한 사람입니다 ...

편집 1

그래서 이 문제를 해결하기 위해 간단한 bash 스크립트를 만들어 보았는데 이제 파일에 다른 오류가 발생합니다 stderr.log. 내가 포함하는 .ini는 다음과 같이 변경되었습니다.command=/usr/local/bin/resque-web

/usr/local/bin/resque-web

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

오류

usr/local/rvm/gems/ruby-2.0.0-p195/gems/vegas-0.1.11/lib/vegas/runner.rb:82:in `app_dir': 또는 --app-dir 둘 다 EVN['HOME '] 정의됨(ArgumentError)
        /usr/local/rvm/gems/ruby-2.0.0-p195/gems/vegas-0.1.11/lib/vegas/runner.rb:66:in `초기화'에서
        /usr/local/rvm/gems/ruby-2.0.0-p195/gems/resque-1.24.1/bin/resque-web:13:in `new'에서
        /usr/local/rvm/gems/ruby-2.0.0-p195/gems/resque-1.24.1/bin/resque-web:13:in `'에서
        /usr/local/rvm/gems/ruby-2.0.0-p195/bin/resque-web:23:in `load'에서
        /usr/local/rvm/gems/ruby-2.0.0-p195/bin/resque-web:23:in `'에서
        /usr/local/rvm/gems/ruby-2.0.0-p195/bin/ruby_noexec_wrapper:14:in `eval'에서
        /usr/local/rvm/gems/ruby-2.0.0-p195/bin/ruby_noexec_wrapper:14:in `'에서

답변1

글쎄, 감독자는 데몬화된 프로세스이기 때문에 resque-web에서 작동하지 않는 것 같습니다. 해결책은 /etc/cron.d/resque다음을 생성하여 그 안에 넣는 것이었습니다.

쉘=/bin/bash
경로=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/rvm/gems/ruby-2.0.0-p195/bin
집=/
* * * * * 루트 resque-web

이 작업은 1분마다 실행되며 서버가 충돌할 경우 서버를 재부팅합니다. 나에게는 충분합니다!

관련 정보