http://rubikitch.com/に移転しました このページをアンテナに追加 RSSフィード

2010-01-09

[]僕たちが待ち望んでいたRubyスクリプトデーモン化する方法

Rubyでは、簡単にデーモン記述できる。その方法は簡単!Ruby 1.9だと

Process.daemon

と書くだけだ。その行の後は制御端末が切離され、デーモンとして実行される。Ctrl+Cで終了できないので、永遠に実行を続けるスクリプトは「pkill -f」などで殺す。

既存のスクリプトデーモン化するには、この一行を加えればいいだけなのだが、常にデーモンにしてしまうとデバッグが困難になってしまう。そこで、テスト時はふつうに実行して、普段はデーモンにしてしまえばいい。その方法もまた簡単!上の一行を daemonize.rb というファイルに保存すればいい。だけどこれだけだとつまらないので、ついでにRuby 1.8にも対応させてみる。

if Process.respond_to? :daemon  # Ruby 1.9
  Process.daemon
else                            # Ruby 1.8
  require 'webrick'
  WEBrick::Daemon.start
end

こうすることで

$ ruby -rdaemonize /path/to/script

と実行すればデーモンとして実行してくれるぞ。rubyオプションひとつでデーモン化してくれるとは、素晴しいぞRuby

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

Connection: close