【发布时间】:2016-05-09 04:09:23
【问题描述】:
我的 Cron 设置是:
0 * * * * ruby /directory/to/ruby/file.rb
我得到这个错误:
/usr/lib64/ruby/1.9.3/rubygems/custom_require.rb:36:in `require': cannot load such file -- mechanize (LoadError)
from /usr/lib64/ruby/1.9.3/rubygems/custom_require.rb:36:in `require'
from /home4/ofixcom1/rails_apps/products.rb:3:in `<main>'
当我在 SSH 上运行该脚本时,它运行没有问题,但是当我设置 cron 时,它给了我这个错误。我已经阅读了很多解决方案。即使使用 RVM,我几乎都尝试了它们。 以前使用 ruby 的 cron 运行顺利,我不知道为什么它不适用于我的。
我忘了提及,在 JustHost 帮助中,他们有此链接以及其他代码的示例: Cron Setup
【问题讨论】:
-
cron 运行的用户是否与您通过 SSH 运行时使用的用户相同?
-
是的,JUSTHOST 使用与 CPANEL 相同的用户进行 SSH 等等。
-
由于 cron 没有在交互/登录会话中运行,我怀疑它没有加载,例如
.bashrc或.profile配置 RVM 环境。您可以尝试运行bash -l -c "ruby ..."(如this answer)。如果做不到这一点,谷歌搜索“cron”、“RVM”和“bundler”的各种组合会产生大量结果。 -
嗨,Jordan,感谢您的回复,.profile 文件位于目录 /home4/ofixcom1 中,我应该使用它而不是 bin/bash 吗?
-
Hello Jordan 在运行这段代码后,它无法识别require,看起来它认为这是一个SH而不是ruby>