0

ruote ワーカー用のgem daemonsonubuntu 12.04およびenvironment でデーモンを起動しようとしています。rails 3.2.12これが daemon.rb ( gem version 1.1.9) です。

#!/usr/bin/env ruby
require 'daemons'
require 'logger'
  root = Dir.pwd
  Dir.chdir(root)
  file = Dir.pwd + '/ruote_worker.rb' 
  options = {
    :dir_mode   => :normal,
    :dir        => File.join(root, 'amine.log'),
    :log_output => true,
    :backtrace  => true,
    :multiple   => false
  }

  logger = Logger.new('foo.log')
  logger.info('----before daemon----') 

  Daemons.run_proc('ruote_worker', options) do
    # Server loop:
    loop {
      puts '111111111111111'
      logger.info('aaaaaaaaaaaaaaa')
    }
  end

foo.log は次のとおりです。

# Logfile created on 2013-11-10 12:56:12 -0600 by logger.rb/36483
I, [2013-11-10T12:56:12.594196 #26557]  INFO -- : ----before daemon----

ruote_worker.rb は次のとおりです (テスト用)。

#!/usr/bin/env ruby

require 'logger'
logger = Logger.new('amine.log')

loop do
    logger.info('---amine---')
    puts '*****************************************************  Amine ****************************'
    sleep 5
end

ログが示すように、Daemons.run_proc()ブロックは完全にスキップされ、まったく実行されませんでした。Daemons.run_proc()「ruote_worker」なしで試してみDaemons.call()ましたが、ブロック内のコードは実行されませんでした。どういうわけか、ブロック全体がスキップされ、実行されません。誰かがデーモンを機能させる方法を明らかにできますか? ruby デーモン gem の経験は限られています (詳細を歓迎します)。ありがとう。

4

1 に答える 1