2017-02-21 29 views
0

我有一台虚拟机,并且在该虚拟机上,当以root身份登录时,出现vnc/display问题。由于我是唯一使用它的人,所以我只是以一切为根。我把我想用crontab作为root执行的一些ruby脚本放在一起,并且它们无法加载ruby宝石。以root身份使用sudo时未找到Ruby Gem

我的根的crontab文件看起来是这样的:

0 0 * * * sudo -s ruby_file.rb 

我看其他地方cron作业运行作为不同的用户。这就是为什么我作为root用户添加了'sudo -s'(没有它的情况下它不工作)。如果ruby_file.rb没有任何宝石,它的效果很好。但是,如果ruby_file.rb有一个在宝石需要,我得到以下错误:

“要求”:无法加载这样的文件 - (gem_name)

我想这是因为安装在宝石root用户,我认为cron作业使用完全不同的用户,但我不确定如何将gem放入cron的用户。

在此先感谢您的帮助!

+0

你使用RVM? – Tsao

回答

0

我找到了我的问题的答案。我使用ruby的rbenv(我忘了添加到最初的细节)。

我不得不rbenv初始化添加到crontab行,所以现在看起来像:

0 0 * * * export PATH=/root/.rbenv/shims:/root/.rbenv/bin:/usr/bin:$PATH; eval "$(rbenv init -)"; ruby_file.rb 
相关问题