我的 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
最佳答案
查看守护程序 gem 的文档:http://daemons.rubyforge.org/classes/Daemons.html#M000005
具体来说,看看 :log_output 选项。
关于ruby-on-rails - 带有 Rails 3.1 的 Ruby 守护进程与 "run"一起工作,在生产环境中不与 "start"一起工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8149357/