【问题标题】:God won't start Resque workers: rake aborted! non-absolute home上帝不会启动 Resque 工人:rake 中止了!非绝对的家
【发布时间】:2011-05-09 21:00:32
【问题描述】:

我在 log/resque-0.log 中收到以下错误:

rake aborted!
non-absolute home
/srv/myapp/current/Rakefile:4

如果我使用上帝使用的相同命令手动启动一个工人,它启动得很好:

QUEUE=* RAILS_ENV=production /usr/bin/rake -f /srv/myapp/current/Rakefile environment resque:work

我尝试在“rails”用户和“root”用户(God 在其下运行)下运行该命令。有什么想法吗?

【问题讨论】:

  • 看起来问题可能出在您的 Rakefile 中,请发布您的 Rakefile 和 God 脚本。

标签: ruby-on-rails ruby rake resque god


【解决方案1】:

你在“Rakefile”和“resque”之间有一个额外的环境

我的上帝脚本通常是这样的:

rails_env = ENV['RAILS_ENV'] || "development"
rails_root = ENV['RAILS_ROOT'] || "/path/to/app"


God.watch do |w|
    w.name = "resque-task"
    w.group = 'resque'
    w.interval = 30.seconds
    w.start = "/path/to/rake -f #{rails_root}/Rakefile resque:work QUEUE=* RAILS_ENV=#{rails_env}"

    w.uid = 'gazler'
    w.gid = 'gazler'

【讨论】:

  • 似乎没有解决问题。当我通过 SSH 在服务器上启动它时它运行良好,但是当上帝尝试运行它时它失败了(同样的错误)。
【解决方案2】:

所以问题的一部分是 shadow_puppet 试图解决您的路径,但如果您实际上是在尝试使用 shadow_puppet 或其他试图扩展路径的东西 ~(例如 Capistrano),请确保包括:

w.env = {"HOME" => "/users/home/dir"}

这为我的情况解决了这个问题(从一个受上帝监督的 resque 工人那里开车帽)。

【讨论】:

    【解决方案3】:

    好吧,我只需要从我的 Gemfile 中删除 shadow_puppet。不知道为什么我一开始就把它放在那里,也许它是旧版 Moonshine 的遗留物。

    【讨论】:

      猜你喜欢
      • 2011-11-21
      • 2012-08-12
      • 1970-01-01
      • 2011-10-27
      • 2015-11-08
      • 1970-01-01
      • 2012-09-01
      • 1970-01-01
      • 2011-07-24
      相关资源
      最近更新 更多