Всякий раз, когда драгоценный камень не выполняет задачу
Я создал проект 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