首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何设置cron环境以运行Ruby脚本?

如何设置cron环境以运行Ruby脚本?
EN

Stack Overflow用户
提问于 2011-01-29 00:27:42
回答 1查看 1.3K关注 0票数 1

我在Linode VM上有一个Ruby脚本,我想每分钟运行一次。

当我通过命令行手动运行ruby脚本时,它运行得很好。但是当cron运行该文件时,它抛出一个奇怪的错误:

代码语言:javascript
运行
复制
undefined method `closed?' for nil:NilClass

["/usr/lib/ruby/1.8/net/http.rb:1060:in request'", "/var/lib/gems/1.8/gems/httparty-0.7.3/lib/httparty/request.rb:69:inperform'","/var/lib/gems/1.8/gems/httparty-0.7.3/lib/httparty.rb:394:in perform_request'", "/var/lib/gems/1.8/gems/httparty-0.7.3/lib/httparty.rb:346:inget'","/var/lib/gems/1.8/gems/httparty-0.7.3/lib/httparty.rb:426

我一直在研究这个问题,似乎它与cron运行脚本的精简环境有关。

我需要在crontab文件中提供Ruby环境的源代码吗?如果是这样,我到底需要什么?

这是我的env:

代码语言:javascript
运行
复制
RubyGems Environment:
  - RUBYGEMS VERSION: 1.3.5
  - RUBY VERSION: 1.8.7 (2010-01-10 patchlevel 249) [i486-linux]
  - INSTALLATION DIRECTORY: /var/lib/gems/1.8
  - RUBY EXECUTABLE: /usr/bin/ruby1.8
  - EXECUTABLE DIRECTORY: /var/lib/gems/1.8/bin
  - RUBYGEMS PLATFORMS:
    - ruby
    - x86-linux
  - GEM PATHS:
     - /var/lib/gems/1.8
     - /root/.gem/ruby/1.8
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :benchmark => false
     - :backtrace => false
     - :bulk_threshold => 1000
  - REMOTE SOURCES:
     - http://gems.rubyforge.org/

which ruby: /usr/bin/ruby

谢谢你的帮助!

EN

回答 1

Stack Overflow用户

发布于 2011-01-29 00:31:38

当cron运行脚本时,它不会继承您的环境。通常,最简单的做法是编写一个包装器shell脚本,它可以获取您需要的任何资源,然后调用您的ruby脚本。

例如,我的大多数cron脚本如下所示

代码语言:javascript
运行
复制
#!/bin/sh

. ${HOME}/.bashrc

# Do Stuff - here is where you would call your ruby script
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4830601

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档