ruote ワーカー用のgem daemons
onubuntu 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 の経験は限られています (詳細を歓迎します)。ありがとう。