2009-10-13 45 views
5

使用守护进程,如何指定我的脚本日志进入/ log /并且它的pid进入/ tmp/pids /?如何指定守护进程的日志和pid目录?

我读过的文档,我看到:DIR /:dir_mode,但我只能让它做一个或另一个,而不是两个 - 似乎是一个非常糟糕的一组选项,如果你问我。

回答

3

它看起来不像香草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的子类,但是它在模块守护进程中的其他地方通过名称实例化,这样会使事情变得棘手。