我读过这篇文章,每当出现错误时,我都会尝试执行这些建议,但都无济于事。我仍然收到"/bin/bash:bundle:commandnot found"错误。在亚马逊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
- /bin/bash-l-c'cd/srv/www/myapp/releases/20141022032959&;RAILS_ENV=开发包exec-rake-cacule:calculate--silent>>log/cron_log.log 2>&1'
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的准备工作把事情搞砸了。
如何让schedule.rb/wheny-gem识别正确的PATH。
忘记cron文件中的PATH设置。设置PATH无效。
在config/schedule.rb 中显式设置捆绑路径
set :bundle_command, "/usr/local/bin/bundle exec"
编辑:添加exec,以便任务可以运行
如果上面的解决方案都不起作用,那么在没有任何额外设置的情况下,我就做到了
rvm cron setup
这将包括宝石的所有正确路径,所以你可以在你的机器上这样做,你就可以走了。
如果使用rbenv,则路径为"home/YOUR_USER/.rbenv/垫片/捆";,所以你应该写在日程的最前面
set :bundle_command, "/home/YOUR_USER/.rbenv/shims/bundle exec"