在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
in 1.9.2
,它停留1.8.7
在我的情况下的系统设置上。
我应该怎么做才能确保跑步者rvm
与1.9.2
gemset 一起跑r321
?
至少有 4 种方法可以让 cron 与 RVM 一起工作:https ://rvm.io/integration/cron/
我个人更喜欢2. Loading RVM environment files in shell scripts.
我认为您的问题是:RVM 仅在您的用户外壳中正确工作。请记住,安装 rvm 后,您必须编写类似的东西。
'[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm"
在你的 .zshrc 或 .bashrc
告诉 cron 您使用 rvm 的用户,因为 rvm 必须作为函数加载,而对于不将 rvm 作为函数加载的用户,它将不起作用,并且系统 ruby 版本会自动使用。例子:
0,30 * * * * 用户名 bash /path/to/my/script.sh
或者,您可以将 rvm 安装为多用户显示:在此处输入链接描述