【问题标题】:Cannot run Ruby script as a cronjob无法将 Ruby 脚本作为 cronjob 运行
【发布时间】:2015-11-08 01:59:16
【问题描述】:

我正在努力将 Ruby 脚本作为 cronjob 运行。我以 root 身份运行 Ubuntu Server 14.04,安装了 RVM 作为 Ruby 管理器,并在我的 crontab 中安装了以下内容:

SHELL=/bin/bash
BASH_ENV=/root/.bashrc

*/15 * * * * /usr/local/rvm/rubies/default/bin/ruby /root/scripts/script.rb

我正在使用绝对路径来确保它确实有效。我知道 cron 没有加载相同的环境,我认为它与此有关,但我无法解决它。

【问题讨论】:

  • 随时使用 gem 让您的生活更轻松。
  • 您看到了什么错误/行为?
  • @MicahElliott 当我检查日志时,我可以看到作业正在运行,但脚本没有被执行。

标签: ruby ubuntu cron environment


【解决方案1】:

见“Using RVM with Cron”。

环境也必须设置,因为典型的 cronjobs 是由 root 运行的,它具有有限的环境信息;像 PATH 这样的东西受到更多的限制。仅通过 RVM 的 shim 调用 Ruby 是不够的。

您可以强制作业以您的身份运行,这将获取您的环境,但随后会以您的权限运行。

【讨论】:

  • 感谢您的回答。根据您的链接,我尝试直接调用包装器,但我得到了require': cannot load such file -- curb (LoadError)(curb 是我在脚本中需要的第一个 gem,我想这也适用于其他 gem)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-11-14
  • 2016-09-07
  • 2018-01-18
  • 2020-11-20
  • 1970-01-01
  • 1970-01-01
  • 2018-02-04
相关资源
最近更新 更多