Как указать каталоги логов и пидов демона? - PullRequest
5 голосов
/ 13 октября 2009

Используя Daemons, как мне указать, что журнал моего скрипта находится в / log /, а его pid - в / tmp / pids /?

Я прочитал документы и вижу: dir /: dir_mode, но я могу заставить его выполнять только один или другой, но не оба - кажется, действительно плохой набор опций, если вы спросите меня. *

1 Ответ

3 голосов
/ 14 октября 2009

Не похоже, что ваниль 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, но он создается по имени в другом месте в модуле Daemons, так что все становится сложнее.

...