
Я бегу, supervisord
чтобы Redis и другие части программного обеспечения работали. Однако я не могу, хоть убей, приступить resque-web
к работе.
Вот .ini-файл, который я включаю:
[программа:resque] команда=/usr/local/rvm/gems/ruby-2.0.0-p195/bin/resque-web автозапуск=истина автоперезапуск=истина пользователь=root stdout_logfile=/var/lib/resque/stdout.log stderr_logfile=/var/lib/resque/stderr.log
К сожалению, при запуске service supervisor restart
я получаю в журнале следующее supervisord
:
ИНФОРМАЦИЯ завершена: запрос (статус завершения 127; не ожидалось)
По данным Googleкод 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/баш источник /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:в `initialize' из /usr/local/rvm/gems/ruby-2.0.0-p195/gems/resque-1.24.1/bin/resque-web:13:в `новый' из /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:в `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:в `eval' из /usr/local/rvm/gems/ruby-2.0.0-p195/bin/ruby_noexec_wrapper:14:in `'
решение1
Ну, похоже, что supervisor не будет работать с resque-web, поскольку это демонизированный процесс. Решением было создать /etc/cron.d/resque
и поместить в него следующее:
ОБОЛОЧКА=/bin/bash ПУТЬ=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/rvm/gems/ruby-2.0.0-p195/bin ДОМОЙ=/ * * * * * корневой ресурс-веб
Это запускается каждую минуту и перезагружает сервер в случае сбоя. Мне этого достаточно!