Cron +每当不使用RVM时

我正在使用RVM环境。 RUby版本:2.1.2 rails:4.1.1

schedule.rb : every 1.minute do runner "note.send_mail" end 

whenever --update-crontab使用whenever --update-crontab来更新cron选项卡。

当我使用crontab -l检查作业时,它显示如下,没有设置适当的时间。 并且cron工作不起作用。

  * * * * * /bin/bash -l -c 'cd /Desktop/folder1/blog2 && bin/rails runner -e production '\''note.send_mail'\''' 

有人可以帮我解决这个问题。 谢谢!

转到~/.rvmrc文件并添加以下内容:

 rvm_trust_rvmrcs_flag=1 

然后whenever --update-crontab再次。 根据随时随地的自述文件 :

如果您的生产环境使用RVM(Ruby版本管理器),您将遇到导致您的cron作业挂起的问题。 这与Whenever没有直接关系,调试也很棘手。 您的.rvmrc文件必须是可信的,否则cron作业将挂起,等待文件被信任。 解决方案是通过将此行添加到〜/ .rvmrc中的用户rvm文件来禁用提示

rvm_trust_rvmrcs_flag = 1

这告诉rvm信任所有rvmrc文件。

如果这对您不起作用,请尝试本页中提到的其他解决方案: RVM-Notes 。

您可以定义一个在命令行上加载rvm的自定义运行器,例如

 job_type :runner_with_rvm, 'source /etc/profile.d/rvm.sh; cd :path;rvm 2.0@gemset do bundle exec script/rails runner -e :environment ':task' :output' every 1.minute do runner_with_rvm "Note.send_email" end 

2.0@gemset替换为您想要的ruby版本和gemset。

可能是/etc/profile.d/rvm.sh也是你环境中的其他东西。