xcorp::When it rains, it pours.

"The nice thing about rain," said Eeyore, "is that it always stops. Eventually."

WEBrick::HTTPServer を daemonize

WEBrick::HTTPServer には、:ServerType なんてのは一切出てこないけど、スーパークラスWEBrick::GenericServer にはあるんで、ひょっとしたら使えるんかなと思ったら普通に使えてしまいました。ホントにいいんだろうか…

require 'webrick'

servlet = XMLRPC::WEBrickServlet.new
srv = WEBrick::HTTPServer.new(
  :BindAddress => '0.0.0.0',
  :Port => 10080,
  :ServerType => WEBrick::Daemon
)
webrick.mount('/', servlet)
Signal.trap(:TERM) { webrick.shutdown }
Signal.trap(:INT)  { webrick.shutdown }
Signal.trap(:HUP)  { webrick.shutdown }
webrick.start

:ServerType を指定しないと WEBrick::SimpleServer になるので、単にコマンドラインに & を付けただけだと制御端末に張り付いちゃうなどいろいろと不都合があったわけですが、これにて一件落着(なのか?