shell脚本通过cron与rvm执行rails runner

时间:2012-02-21 21:09:02

标签: bash cron rvm runner

crontab我有:

0,30 * * * * sh /path/to/my/script.sh

在我的script.sh我有:

#!/bin/bash
rvm use 1.9.2@r321
cd /path/to/my/proyect
rails runner rails_script.rb

但它没有在rvm中加载1.9.2,在我的情况下它保留在系统设置1.8.7

我应该怎么做才能确保跑步者在rvm 1.9.2下使用gemset r321运行?

2 个答案:

答案 0 :(得分:6)

至少有4种方法可以让cron使用RVM:https://rvm.io/integration/cron/

我个人更喜欢2. Loading RVM environment files in shell scripts.

答案 1 :(得分:1)

我认为您的问题是:RVM只在您的用户shell中正常工作。记得以后 安装rvm你必须写一些想法。

  

'[[-s“$ HOME / .rvm / scripts / rvm”]]&& 。 “$ HOME / .rvm / scripts / rvm”

<。>在你的.zshrc或.bashrc

告诉cron你使用rvm的用户是因为rvm必须作为一个函数加载 并且对于不将rvm作为函数加载的用户,它将无法工作,系统ruby版本将自动使用。 例如:

  

0,30 * * * * USERNAME bash /path/to/my/script.sh

另外,您可以在以下位置安装rvm作为多用户节目:enter link description here