oranie's blog

旧:iをgに変えると・・・なんだっけ・・・

rubyでデーモン作ったよ。

まんまです。ちょっとした需要から

  1. 一定間隔(例では500ms)であるサーバにファイルを取りに行く
  2. 取ってきたファイルを保存する。
  3. 一度動かしたらしばらく止めないので、デーモン化させる

という至極簡単な内容です。

#!/opt/ruby-1.9.2/bin/ruby
Process.daemon
require 'net/http'

class File_Get
    http = Net::HTTP.new("example.com", 80)
    req = Net::HTTP::Get.new('/hogehoge.txt')

    while true
       res = http.request(req)
       body = res.body
       output_file = File.open("/tmp/output.dat", "w")
       output_file.write(body)
       output_file.close
       sleep(0.5)
    end
end


肝はruby1.9系だと「Process.daemon」と書くだけでデーモン化されるので、
これを実行するだけです。ちゃんと運用で使う場合は/etc/init.d/配下に
起動・停止スクリプトを作ればとりあえず出来ちゃうみたいです。


ちょっとだけ「あれ?(・ω・)」となった所は、デーモン化する事で実行したディレクトリが
カレントディレクトリになるのでは無く、「/」がカレントになっていたので
絶対パスとかでちゃんとディレクトリ指定しないとルートにガンガンファイル作る事になっていました。