mirror of
https://github.com/puma/puma.git
synced 2022-11-09 13:48:40 -05:00
Bug 4414 fixed, should no longer clobber pid file
git-svn-id: svn+ssh://rubyforge.org/var/svn/mongrel/trunk@205 19e92222-5c0b-0410-8929-a290d50e31e9
This commit is contained in:
parent
3843f96fb4
commit
4905d82fc0
3 changed files with 13 additions and 9 deletions
|
@ -143,6 +143,7 @@ class Start < GemPlugin::Plugin "/commands"
|
||||||
config.run
|
config.run
|
||||||
config.log "Mongrel available at #{settings[:host]}:#{settings[:port]}"
|
config.log "Mongrel available at #{settings[:host]}:#{settings[:port]}"
|
||||||
config.log "Use CTRL-C to stop." if not @daemon
|
config.log "Use CTRL-C to stop." if not @daemon
|
||||||
|
config.write_pid_file
|
||||||
config.join
|
config.join
|
||||||
|
|
||||||
if config.needs_restart
|
if config.needs_restart
|
||||||
|
|
|
@ -699,6 +699,8 @@ module Mongrel
|
||||||
# A major thing about Configurator is that it actually lets you configure
|
# A major thing about Configurator is that it actually lets you configure
|
||||||
# multiple listeners for any hosts and ports you want. These are kept in a
|
# multiple listeners for any hosts and ports you want. These are kept in a
|
||||||
# map config.listeners so you can get to them.
|
# map config.listeners so you can get to them.
|
||||||
|
#
|
||||||
|
# * :pid_file => Where to write the process ID.
|
||||||
class Configurator
|
class Configurator
|
||||||
attr_reader :listeners
|
attr_reader :listeners
|
||||||
attr_reader :defaults
|
attr_reader :defaults
|
||||||
|
@ -731,6 +733,13 @@ module Mongrel
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# Writes the PID file but only if we're on windows.
|
||||||
|
def write_pid_file
|
||||||
|
if RUBY_PLATFORM !~ /mswin/
|
||||||
|
open(@pid_file,"w") {|f| f.write(Process.pid) }
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
# generates a class for cloaking the current self and making the DSL nicer
|
# generates a class for cloaking the current self and making the DSL nicer
|
||||||
def cloaking_class
|
def cloaking_class
|
||||||
class << self
|
class << self
|
||||||
|
@ -811,7 +820,6 @@ module Mongrel
|
||||||
#
|
#
|
||||||
# * :cwd => Directory to change to.
|
# * :cwd => Directory to change to.
|
||||||
# * :log_file => Where to write STDOUT and STDERR.
|
# * :log_file => Where to write STDOUT and STDERR.
|
||||||
# * :pid_file => Where to write the process ID.
|
|
||||||
#
|
#
|
||||||
# It is safe to call this on win32 as it will only require the daemons
|
# It is safe to call this on win32 as it will only require the daemons
|
||||||
# gem/library if NOT win32.
|
# gem/library if NOT win32.
|
||||||
|
@ -826,7 +834,6 @@ module Mongrel
|
||||||
# change back to the original starting directory
|
# change back to the original starting directory
|
||||||
Dir.chdir(ops[:cwd])
|
Dir.chdir(ops[:cwd])
|
||||||
|
|
||||||
open(ops[:pid_file],"w") {|f| f.write(Process.pid) }
|
|
||||||
else
|
else
|
||||||
log "WARNING: Win32 does not support daemon mode."
|
log "WARNING: Win32 does not support daemon mode."
|
||||||
end
|
end
|
||||||
|
@ -966,7 +973,7 @@ module Mongrel
|
||||||
# It only configures if the platform is not win32 and doesn't do
|
# It only configures if the platform is not win32 and doesn't do
|
||||||
# a HUP signal since this is typically framework specific.
|
# a HUP signal since this is typically framework specific.
|
||||||
#
|
#
|
||||||
# Requires a :pid_file option to indicate a file to delete.
|
# Requires a :pid_file option given to Configurator.new to indicate a file to delete.
|
||||||
# It sets the MongrelConfig.needs_restart attribute if
|
# It sets the MongrelConfig.needs_restart attribute if
|
||||||
# the start command should reload. It's up to you to detect this
|
# the start command should reload. It's up to you to detect this
|
||||||
# and do whatever is needed for a "restart".
|
# and do whatever is needed for a "restart".
|
||||||
|
@ -975,8 +982,6 @@ module Mongrel
|
||||||
def setup_signals(options={})
|
def setup_signals(options={})
|
||||||
ops = resolve_defaults(options)
|
ops = resolve_defaults(options)
|
||||||
|
|
||||||
@pid_file = ops[:pid_file]
|
|
||||||
|
|
||||||
# forced shutdown, even if previously restarted (actually just like TERM but for CTRL-C)
|
# forced shutdown, even if previously restarted (actually just like TERM but for CTRL-C)
|
||||||
trap("INT") { log "INT signal received."; stop(need_restart=false) }
|
trap("INT") { log "INT signal received."; stop(need_restart=false) }
|
||||||
|
|
||||||
|
|
|
@ -21,8 +21,6 @@ require 'cgi'
|
||||||
|
|
||||||
module Mongrel
|
module Mongrel
|
||||||
module Rails
|
module Rails
|
||||||
|
|
||||||
|
|
||||||
# Implements a handler that can run Rails and serve files out of the
|
# Implements a handler that can run Rails and serve files out of the
|
||||||
# Rails application's public directory. This lets you run your Rails
|
# Rails application's public directory. This lets you run your Rails
|
||||||
# application with Mongrel during development and testing, then use it
|
# application with Mongrel during development and testing, then use it
|
||||||
|
@ -65,7 +63,7 @@ module Mongrel
|
||||||
return if response.socket.closed?
|
return if response.socket.closed?
|
||||||
|
|
||||||
path_info = request.params[Mongrel::Const::PATH_INFO]
|
path_info = request.params[Mongrel::Const::PATH_INFO]
|
||||||
page_cached = request.params[Mongrel::Const::PATH_INFO] + ".html"
|
page_cached = path_info + ".html"
|
||||||
|
|
||||||
if @files.can_serve(path_info)
|
if @files.can_serve(path_info)
|
||||||
# File exists as-is so serve it up
|
# File exists as-is so serve it up
|
||||||
|
|
Loading…
Add table
Reference in a new issue