[前][次][番号順一覧][スレッド一覧]

ruby-reference-manual:691

From: Yugui <yugui@y...>
Date: Wed, 23 Jan 2008 11:45:50 +0900
Subject: [ruby-reference-manual:691] bitclust/standalone --pid-file

Yuguiです。

bitclust/standalone.rbに、pidを記録するオプションを付け 
てみました。



Index: standalone.rb
===================================================================
--- standalone.rb	(revision 2447)
+++ standalone.rb	(working copy)
@@ -25,9 +25,10 @@
  debugp = false
  autop = false
  browser = nil
+pid_file = nil

  parser = OptionParser.new
-parser.banner = "#{$0} [--bind-address=ADDR] [--port=NUM] -- 
baseurl=URL --database=PATH [--srcdir=PATH] [--templatedir=PATH] [-- 
themedir=PATH] [--debug] [--auto] [--browser=BROWSER]"
+parser.banner = "#{$0} [--bind-address=ADDR] [--port=NUM] -- 
baseurl=URL --database=PATH [--srcdir=PATH] [--templatedir=PATH] [-- 
themedir=PATH] [--debug] [--auto] [--browser=BROWSER] [--pid-file=PATH]"
  parser.on('--bind-address=ADDR', 'Bind address') {|addr|
    params[:BindAddress] = addr
  }
@@ -58,6 +59,9 @@
  parser.on('--browser=BROWSER', 'Open with the browser.') {|path|
    browser = path
  }
+parser.on('--pid-file=PATH', 'Write pid of the daemon to the  
specified file.') {|path|
+  pid_file = path
+}
  parser.on('--help', 'Prints this message and quit.') {
    puts parser.help
    exit 0
@@ -147,7 +151,16 @@
  if debugp
    trap(:INT) { server.shutdown }
  else
-  WEBrick::Daemon.start
+  WEBrick::Daemon.start do
+    trap(:TERM) {
+      server.shutdown
+      begin
+        File.unlink pid_file if pid_file
+      rescue Errno::ENOENT
+      end
+    }
+    File.open(pid_file, 'w') {|f| f.write Process.pid } if pid_file
+  end
  end
  exit if $".include?("exerb/mkexy.rb")
  if autop && !browser


-- 
Yugui
yugui@y...
http://idm.s9.xrea.com



--
ML: ruby-reference-manual@m...
使い方: http://QuickML.com/

[前][次][番号順一覧][スレッド一覧]