使用守护进程,如何指定脚本的日志位于/log/中,其pid位于/tmp/pid s/中?
我读过文档,我看到了:dir/:dir_模式,但我只能让它做一个或另一个,而不是两个——如果你问我的话,看起来是一组非常糟糕的选项。

最佳答案

它看起来不像香草Daemons可以做你想做的事,但它是固定的。试试这样的:

require 'rubygems'
require 'daemons'

module Daemons
  class Application
    def logfile;        '/log/f1'; end
    def output_logfile; '/log/f2'; end
  end
end

Daemons.run '/tmp/test.rb',
    :dir        => '/tmp/pids',
    :dir_mode   => :normal,
    :ontop      => false,
    :log_output => true

您可能希望*logfile的逻辑更像原始逻辑;只需扫描守护程序源以查找def.logfile。我还希望修补Application的一个子类,但它是通过模块守护进程中其他地方的名称实例化的,所以这会使事情变得棘手。

08-26 08:40