
저는 supervisord
Redis와 기타 소프트웨어를 계속해서 실행하기 위해 노력하고 있습니다. 그러나 나는 평생 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.log
Supervisord가 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분마다 실행되며 서버가 충돌할 경우 서버를 재부팅합니다. 나에게는 충분합니다!