我已阅读此帖Whenever errors 并试图落实这些建议无济于事。我还在接收' / bin / bash:bundle:未找到命令'错误。 在Amazon EC2上。
哪个红宝石
/usr/local/bin/ruby
哪个捆绑包
/usr/local/bin/bundler
schedule.rb
env :PATH, ENV['PATH']
require File.expand_path('../application', __FILE__)
set :output, "log/cron_log.log"
every 1.minutes do
rake "calculate:calculate"
end
crontab -e
tail -f log / cron_log.log
/bin/bash: bundle: command not found
当我从crontab复制命令并直接运行时,一切正常(cd / srv / www / myapp / releases / 20141022032959&& RAILS_ENV =开发包exec rake calculate:calculate --silent>> ; log / cron_log.log 2>& 1)。这是/ bin / bash的前缀,这让我们搞砸了。
如何在gem识别正确的PATH时获取schedule.rb /。
答案 0 :(得分:15)
忘记cron文件中的PATH设置。设置PATH不起作用。
在config / schedule.rb中明确设置捆绑路径
set :bundle_command, "/usr/local/bin/bundle exec"
编辑:添加了exec以便任务可以运行
答案 1 :(得分:0)
如果以上解决方案都不起作用,那么在没有任何其他设置的情况下这样做了
rvm cron setup
这将包括宝石的所有正确路径,以便您在计算机上执行此操作,并且您可以继续使用。
答案 2 :(得分:0)
如果使用rbenv,则路径为“ /home/YOUR_USER/.rbenv/shims/bundle”,因此您应该在schedule.rb ..:
的顶部写set :bundle_command, "/home/YOUR_USER/.rbenv/shims/bundle exec"