Всякий раз, когда драгоценный камень не выполняет задачу

Я создал проект rails для использования драгоценного камня Everyever. Теперь я развернул свой проект с Capistrano, и задачи были добавлены в список crontab. Но когда я вижу только одну строку:

/bin/bash: bundle: command not found

Итак, я прочитал несколько статей в Интернете, поэтому я добавил это поверх моего файла schedule.rb

env 'PATH', ENV['PATH']

Поэтому вы должны думать, что проблема решена, потому что это добавит следующую строку в crontab:

PATH=/var/rails/alfa_paints/shared/bundle/ruby/1.9.1/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games

Поэтому вы должны думать, что bundle находится в пути, когда команда выполняется. Но все равно не повезло. Я выполнил команду и развертывание с отдельным пользователем. Таким образом, чтобы убедиться, что все работает с этим пользователем, в данном случае - развертыватель. Я принял на себя роль развертывателя и выполнил команду, указанную в crontab. Я не испытывал никаких проблем при выполнении этой команды.

У меня заканчиваются варианты, и мне было интересно, испытывал ли кто-нибудь еще такое странное поведение? Я надеюсь на некоторые советы. Это вывод в моем crontab:

# Begin Whenever generated tasks for: alfa_paints
 PATH=/var/rails/alfa_paints/shared/bundle/ruby/1.9.1/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games

0 1 * * * /bin/bash -l -c 'cd /var/rails/alfa_paints/releases/20130127192223 && RAILS_ENV=production bundle exec rake alfa:cleanup --silent >> /var/rails/alfa_paints/shared/log/whenever.log 2>&1'

# End Whenever generated tasks for: alfa_paints

Любая помощь велком!

2 ответа

Какую оболочку вы используете? Так как я видел всякий раз, когда добавляет 'bash -l -c ' в команду задания. Либо установить

set:job_template, nil

или если вы используете Zsh, то

set:job_template, "zsh -l -c ':job'"

Это решило мою проблему

Вам нужно будет передать необходимые переменные окружения в crontab.

Добавьте эти строки вверху вашего crontab (crontab -e)

(очевидно, вы измените значения переменных, чтобы они представляли значения в вашей среде)

(в этом случае я использую RVM)

PATH = / дом / развернуть /.rvm / драгоценные камни / рубиново-2.0.0-P247/ бен:/home/deploy/.rvm/gems/ruby-2.0.0p247@global/bin:/home/deploy/.rvm/ рубины / рубинового 2.0.0p247/ бен: /home/deploy/.rvm/bin: / USR / местные / бен: / USR / бен: / бен: / USR / местные / игры: / USR / игры: / USR / бен /: / Главная / развернуть /.rvm / бен

GEM_HOME=/ дом / развернуть /.rvm / драгоценные камни / рубиново-2.0.0-P247

GEM_PATH=/home/deploy/.rvm/gems/ruby-2.0.0-p247/home/deploy/.rvm/gems/ruby-2.0.0-p247@global

MY_RUBY_HOME = / дом / развернуть /.rvm / рубины / рубиново-2.0.0-P247

Другие вопросы по тегам