From eb01d35109897162a48ff5219dcd97f35328168c Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Sat, 4 Mar 2006 19:39:26 +0000 Subject: Added socket cleanup for lighttpd, both before and after [DHH] Added automatic creation of tmp/ when running script/server [DHH] Added silence_stream that'll work on both STDERR or STDOUT or any other stream and deprecated silence_stderr in the process [DHH] git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@3761 5ecf4fe2-1ee6-0310-87b1-e25e094e27de --- .../active_support/core_ext/kernel/reporting.rb | 23 +++++++++++++--------- railties/CHANGELOG | 6 ++++++ railties/lib/commands/process/reaper.rb | 2 +- railties/lib/commands/server.rb | 1 + railties/lib/commands/servers/lighttpd.rb | 9 +++++++-- 5 files changed, 29 insertions(+), 12 deletions(-) diff --git a/activesupport/lib/active_support/core_ext/kernel/reporting.rb b/activesupport/lib/active_support/core_ext/kernel/reporting.rb index 232443601c..a5cec50245 100644 --- a/activesupport/lib/active_support/core_ext/kernel/reporting.rb +++ b/activesupport/lib/active_support/core_ext/kernel/reporting.rb @@ -21,20 +21,25 @@ module Kernel $VERBOSE = old_verbose end - # Silences stderr for the duration of the block. + # For compatibility + def silence_stderr #:nodoc: + silence_stream(STDERR) { yield } + end + + # Silences any stream for the duration of the block. # - # silence_stderr do - # $stderr.puts 'This will never be seen' + # silence_stream(STDOUT) do + # puts 'This will never be seen' # end # - # $stderr.puts 'But this will' - def silence_stderr - old_stderr = STDERR.dup - STDERR.reopen(RUBY_PLATFORM =~ /mswin/ ? 'NUL:' : '/dev/null') - STDERR.sync = true + # puts 'But this will' + def silence_stream(stream) + old_stream = stream.dup + stream.reopen(RUBY_PLATFORM =~ /mswin/ ? 'NUL:' : '/dev/null') + stream.sync = true yield ensure - STDERR.reopen(old_stderr) + stream.reopen(old_stream) end def suppress(*exception_classes) diff --git a/railties/CHANGELOG b/railties/CHANGELOG index 24650fd674..d258852c0a 100644 --- a/railties/CHANGELOG +++ b/railties/CHANGELOG @@ -1,5 +1,11 @@ *SVN* +* Added socket cleanup for lighttpd, both before and after [DHH] + +* Added automatic creation of tmp/ when running script/server [DHH] + +* Added silence_stream that'll work on both STDERR or STDOUT or any other stream and deprecated silence_stderr in the process [DHH] + * Added reload! method to script/console to reload all models and others that include Reloadable without quitting the console #4056 [esad@esse.at] * Added that rake rails:freeze:edge will now just export all the contents of the frameworks instead of just lib, so stuff like rails:update:scripts, rails:update:javascripts, and script/server on lighttpd still just works #4047 [DHH] diff --git a/railties/lib/commands/process/reaper.rb b/railties/lib/commands/process/reaper.rb index 6da2191d1b..73b6b97f48 100644 --- a/railties/lib/commands/process/reaper.rb +++ b/railties/lib/commands/process/reaper.rb @@ -127,4 +127,4 @@ ARGV.options do |opts| opts.parse! end -ProgramProcess.process_keywords(OPTIONS[:action], OPTIONS[:dispatcher]) +ProgramProcess.process_keywords(OPTIONS[:action], OPTIONS[:dispatcher]) \ No newline at end of file diff --git a/railties/lib/commands/server.rb b/railties/lib/commands/server.rb index 310afba689..85e3a64d60 100644 --- a/railties/lib/commands/server.rb +++ b/railties/lib/commands/server.rb @@ -25,4 +25,5 @@ else puts "=> Booting lighttpd (use 'script/server webrick' to force WEBrick)" end +silence_stderr { `rake tmp:create` } require "commands/servers/#{server}" \ No newline at end of file diff --git a/railties/lib/commands/servers/lighttpd.rb b/railties/lib/commands/servers/lighttpd.rb index 2bd9a1de14..315fb34ade 100644 --- a/railties/lib/commands/servers/lighttpd.rb +++ b/railties/lib/commands/servers/lighttpd.rb @@ -72,6 +72,7 @@ end trap(:INT) { exit } begin + `rake tmp:sockets:clear` # Needed if lighttpd crashes or otherwise leaves FCGI sockets around `lighttpd #{!detach ? "-D " : ""}-f #{config_file}` ensure unless detach @@ -79,7 +80,11 @@ ensure puts 'Exiting' # Ensure FCGI processes are reaped - ARGV.replace ['-a', 'kill'] - require 'commands/process/reaper' + silence_stream(STDOUT) do + ARGV.replace ['-a', 'kill'] + require 'commands/process/reaper' + end + + `rake tmp:sockets:clear` # Remove sockets on clean shutdown end end -- cgit v1.2.3