Ruby-在cronjob中没有要加载的gem

Ruby-在cronjob中没有要加载的gem,ruby,gem,crontab,Ruby,Gem,Crontab,我使用rvm。ruby 1.9.2安装在rvm中 我有一个脚本,它在终端运行良好。 我为同一脚本编写了一个cron作业: 27 * * * * su - sayuj -c 'cd /path/to/dir; /home/sayuj/.rvm/rubies/ruby-1.9.2-p136/bin/ruby script.rb >> /var/log/script.log 2>&1' 然后它显示没有gem要加载的错误。我认为cron并不是指rvmruby1.9.2 如何解

我使用rvm。ruby 1.9.2安装在rvm中

我有一个脚本,它在终端运行良好。 我为同一脚本编写了一个cron作业:

27 * * * * su - sayuj -c 'cd /path/to/dir; /home/sayuj/.rvm/rubies/ruby-1.9.2-p136/bin/ruby script.rb >> /var/log/script.log 2>&1'
然后它显示没有gem要加载的错误。我认为cron并不是指rvmruby1.9.2


如何解决此问题?

您需要更改
cd/path/to/dir到实际目录。
然后,创建一个名为
.rvmrc
的文件,其中包含以下内容:

rvm use 1.9.2

它将在每次进入目录时执行,设置为正确的ruby版本。

将脚本放入从crontab调用的包装器shell脚本中。这将真正有助于调试,并可能解决您的问题。如果天气晴朗,就加一个#/bin/bash-x,并查看对env的调用的输出,并与运行env的命令行结果进行比较。