Linux上でrubyプログラムのデーモンを作りたいです。
また、デーモンをインタラクティブにしたい-ファイル/パイプ/最も簡単な方法でデーモンに入力を送信し、ファイルへの出力を受信できるようにしたい。
どうすればこれを行うことができますか?
モジュールのデーモン (http://daemons.rubyforge.org/)、スレッド、メソッド popen3 を調べましたが、上記のことを行うのに苦労しています。
答え: ムラデンの方法:
デーモンを作成するコントローラーがあります: (daemons モジュール gem が必要です)
require 'rubygems'
require 'daemons'
Daemons.run('/myDaemon.rb', {:app_name => "o", :dir_mode => :normal, :dir => '', :log_output => true, :multiple => true })
ここに myDaemon.rb があります:
puts `pwd`
File.open('my_pipe', 'r+') do |f|
loop do
line = f.gets
puts "Got: #{line}"
end
end
手順: 両方のファイルがルート ディレクトリ \. Daemons.run は \ にデーモンを作成します。
名前付きパイプ mkfifo ./my_pipe を作成します。
ruby controller.rb スタート
猫 > my_pipe
テキストを入力
入力を停止するには ctrl-c
cat o.output 出力を確認する