带有Rails 3.1的Ruby守护进程与“run”一起使用,在生产环境中不能与“start”一起使用

时间:2011-11-16 09:28:25

标签: ruby-on-rails ruby

我的Rails 3.1应用程序中有一个自定义守护程序。如果我调用

,守护程序在我的开发环境中工作
ruby script/daemon.rb start

在我的生产环境中,如果我使用相同的命令,则会启动守护程序,但它会立即关闭并且在我的日志中没有任何跟踪。另一方面,如果我使用

运行守护程序
ruby script/daemon.rb run

它有效。为什么?并且 - 我在哪里可以找到发生的事情的日志?

我的守护程序脚本是这样的:

require 'daemons'
require File.expand_path(File.join(File.dirname(__FILE__), '..', 'config', 'environment'))

Daemons.run_proc('mydaemon') do
  logger = ActiveSupport::BufferedLogger.new(
    File.join(Rails.root, "log", "mydaemon.log"),Logger::INFO)
  Rails.logger = logger
  ActiveRecord::Base.logger = logger

  loop do
    MyClass.dosomething
    sleep(5)
  end
end

1 个答案:

答案 0 :(得分:1)

查看守护进程gem的文档:http://daemons.rubyforge.org/classes/Daemons.html#M000005

具体来说,看看:log_output选项。