daemons
gemを使用して無限ループ デーモンを開始および停止しようとしています。
ホームページを見て、(irbで)試しました:
require 'daemons'
=>true
task_handle = Daemons.call do
loop{
sleep 10
puts "foo"
}
end
=> #<Daemons::Application:0x000000043f96d0 ...
task_handle.stop
=> nil
task_handle2 = Daemons.call do
loop{
sleep 10
puts "bar"
}
end
=>Daemons::RuntimeException: there is already one or more instance(s) of the program running
from /home/bdares/.rvm/gems/ruby-1.9.3-p194/gems/daemons-1.1.9/lib/daemons/application_group.rb:125:in `new_application'
from /home/bdares/.rvm/gems/ruby-1.9.3-p194/gems/daemons-1.1.9/lib/daemons.rb:251:in `call'
from (irb):21
今、私が見ている正確な例(リンクされたページの#3)は、オプションを使用して最初の呼び出しを行います:multiple => true
が、一度に実行する必要があるデーモンは1つだけです(実際、複数のデーモンは望ましくありません)。
最初のデーモンはまだ何とか生きていて、GC されていませんか? もしそうなら、私は何が欠けていますか?