RVM没有用cron设置环境

tha*_*guy 2 ruby cron ruby-on-rails rvm

我正忙着用cron和RVM执行脚本/跑步者.我相信问题在于rvm环境没有在跑步者执行之前设置.

目前我正在抛出错误/ bin/sh:1.sql:命令找不到比我早先得到的更多,所以我想这很好.

我已经读过这个帖子需要在每个cron作业之前设置rvm环境, 但我还是没有真正得到它.我认为部分问题是错误报告.

到目前为止,这是我的跑步者.

 */1 * * * * * /bin/bash -l -c 'rvm use 1.8.7-p352@2310; cd development/app/my_app2310 && script/runner -e development "Mailer.find_customer"'
Run Code Online (Sandbox Code Playgroud)

根据上面的链接,我试着制作一个rvm_cron_runner.

我创建了一个文件并将其放入其中:

#!/bin/sh
source "/Users/dude/.rvm/scripts/rvm"
exec $1
Run Code Online (Sandbox Code Playgroud)

然后我将我的crontab更新为此.

*/1 * * * * * /bin/bash -l -c '/Users/dude/development/app/my_app2310/rvm_cron_runner; rvm use 1.8.7-p352@2310; cd development/app/my_app2310 && script/runner -e development "Mailer.find_customer"'
Run Code Online (Sandbox Code Playgroud)

这也没有区别.我没有错.没有.

谁能看到我做错了什么?

PS我希望我的代码格式化工作.

nat*_*vda 5

您可以尝试将要运行的代码放在单独的脚本中,然后使用rvm_cron_runner

因此,请将您的操作放在名为的文件中 /path/cron_job

rvm use 1.8.7-p352@2310
cd development/app/my_app2310 && script/runner -e development "Mailer.find_customer"
Run Code Online (Sandbox Code Playgroud)

然后在你的crontab中写

1 2 * * * /path/rvm_cron_runner /path/cron_job
Run Code Online (Sandbox Code Playgroud)

差异:

  • 这不会启动单独的shell
  • 使用的参数 rvm_cron_runner

如果你想使用一个.rvmrc文件rvm use ...,我想你甚至可以放弃这一行.