Launch::WEBrickHTTPServer adds launchd support to WEBrick.
To use, replace WEBrick::HTTPServer with Launch::WEBrickHTTPServer.
By default Launch::WEBrickHTTPServer expects to find the socket list under 'WEBrickSockets' but this may be overridden through the :LaunchdSockets option.
The server will automatically shut down when a TERM signal is sent. If you wish to perform other shutdown actions override TERM but be sure to shut down webrick.
An example WEBrick server using Launch::WEBrickHTTPServer would be:
require 'launch/webrick' Launch::WEBrickHTTPServer.new(:DocumentRoot => ARGV.shift).start
Here is an example plist for this server which listens on port 8000:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Label</key> <string>net.segment7.launch.webrick</string> <key>ProgramArguments</key> <array> <string>/path/to/ruby</string> <string>/path/to/webrick</string> <string>/Users/your_user/Sites</string> </array> <key>ServiceIPC</key> <true/> <key>Sockets</key> <dict> <key>WEBrickSockets</key> <dict> <key>SockServiceName</key> <string>8000</string> </dict> </dict> </dict> </plist>
Initializes an HTTP server with options and set the server’s listeners using Launch. A TERM handler to shut down the server is automatically set.
:LaunchdSockets may be set to change the socket key from the default of 'WEBrickSockets'
# File lib/launch/webrick.rb, line 62 def initialize options = {} options[:DoNotListen] = true sockets_key = options.delete(:LaunchdSockets) || 'WEBrickSockets' super launch_checkin servers = launch_sockets sockets_key, TCPServer listeners.replace servers trap 'TERM' do shutdown end end
Generated with the Darkfish Rdoc Generator 2.