gpt4 book ai didi

ruby - 在 Ruby 脚本中需要 Ruby Gem 会中断 Cron 作业执行

转载 作者:数据小太阳 更新时间:2023-10-29 08:14:56 25 4
gpt4 key购买 nike

我正在尝试使用 Gems 运行一个 cron 作业。我已经通过 RVM 安装了 ruby​​,当我需要一个 gem 时,它会中断 cron 作业。我试过需要两个完全不同的 gem,PG/Pry,当我需要其中一个时,cronjob 无法完成。这是运行良好的“测试代码”:

open('/home/log.log', 'a') do |f|
f.puts Time.now.to_s
end

以下是我如何设置 cronjob:

* * * * * /usr/local/rvm/rubies/ruby-2.0.0-p247/bin/ruby /home/test1.rb

我每分钟都能看到新的输出。当我在顶部添加一个 require gem 行时,它就会中断,但只有在通过 cron 运行时才会中断:

require 'pg'

open('/home/log.log', 'a') do |f|
f.puts Time.now.to_s
end

cronjob 运行(我可以在 sys 日志中看到它执行),但从未完成(没有输出进入文本文件)。我在两台独立的服务器上试过这个,一台是 Debian,一台是 CentOS,两者都有同样的问题。奇怪的是,这只会影响 cron 作业,如果我从控制台运行相同的 ruby​​ 文件:/home/test1.rb 它将正常工作。

任何帮助都会很棒。

最佳答案

您需要使用 rvm 设置您的 crontab,例如:

rvm 定时设置

通过 rvm 在你的 crontab 文件中设置你的环境变量

然后你有一个 crontab 文件,顶部有这个:

PATH="/usr/local/rvm/gems/ruby-1.9.3-p194/bin:/usr/local/rvm/gems/ruby-1.9.3-p194@global/bin:/usr/local/rvm/rubies/ruby-1.9.3-p194/bin:/usr/local/rvm/bin:/usr/local/rvm/gems/ruby-1.9.3-p194/bin:/usr/local/rvm/gems/ruby-1.9.3-p194@global/bin:/usr/local/rvm/rubies/ruby-1.9.3-p194/bin:/usr/local/rvm/bin:/usr/lib64/qt-3.3/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/usr/local/rvm/gems/ruby-1.9.3-p194@global/"
rvm_env_string='ruby-1.9.3-p194'
rvm_path='/usr/local/rvm'
rvm_ruby_string='ruby-1.9.3-p194'
RUBY_VERSION='ruby-1.9.3-p194'
GEM_HOME='/usr/local/rvm/gems/ruby-1.9.3-p194'
GEM_PATH='/usr/local/rvm/gems/ruby-1.9.3-p194:/usr/local/rvm/gems/ruby-1.9.3-p194@global'
MY_RUBY_HOME='/usr/local/rvm/rubies/ruby-1.9.3-p194'
IRBRC='/usr/local/rvm/rubies/ruby-1.9.3-p194/.irbrc'

然后你可以把你的crontask放在它下面

关于ruby - 在 Ruby 脚本中需要 Ruby Gem 会中断 Cron 作业执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20672583/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com