Linux cron中使用rvm

使用rvm后,在cron中直接使用rake或rails runner都会报错。因为cron的shell只会加载最基本的shell环境,而rvm需要执行一个初始化脚本,所以不加处理的话会报错。

 

解决的方法并不复杂,就是cron要采用 /bin/bash -l -c '<这里是ruby或rails runner命令>' 写法。

 

例如

  12 0 * * * /bin/bash -l -c 'rake -f /some_path/Rakefile sometask'

或者

  10 0 * * * /bin/bash -l -c '/some_rails_app/script/rails/runner -e production "SomeModel.some_func"'

 

bash -l  是指 load the entire environment

-c 是指 command

 

参考:

http://blog.scoutapp.com/articles/2010/09/07/rvm-and-cron-in-production

 

你可能感兴趣的:(Ruby,on,Rails,Rails,Bash,Ruby,C,C++)