上帝不会启动Resque工作人员:rake aborted!非绝对的家

时间:2011-05-09 21:00:33

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

我在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'用户(上帝运行)下运行该命令。有什么想法吗?

3 个答案:

答案 0 :(得分: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'

答案 1 :(得分:1)

问题的一部分是shadow_puppet试图解决你的路径,但如果你真的试图使用shadow_puppet或其他尝试扩展路径的东西〜(比如Capistrano),请确保包括:

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

根据我的情况解决了这个问题(从神监视的resque工作人员驾驶上限)。

答案 2 :(得分:0)

好的结果我只需从我的Gemfile中删除shadow_puppet。不知道为什么我首先在​​那里有它,也许这是旧版Moonshine的延续。