El Miércoles, 20 de Enero de 2010, Iñaki Baz Castillo escribió:
> This would involve just three changes:
>
> - Add an option "--reload" in OptionParser in bin/unicorn.
> - Store such option somewhere so it can be readed later by the Rack
> application or other library.
> - Add "--reload" to the list of original arguments when receiving USR2.
I attach a patch (for master branch) that would do the job (except the
fact that I don't know how to store the "reload" option):
-----------------------------------------
diff --git a/bin/unicorn b/bin/unicorn
index 5af021d..43f5434 100755
--- a/bin/unicorn
+++ b/bin/unicorn
@@ -88,6 +88,10 @@ opts = OptionParser.new("", 24, ' ') do |opts|
options[:config_file] = f
end
+ opts.on("--reload", "HIDDEN") do |f|
+ # TODO: Store it somewhere
+ end
+
# I'm avoiding Unicorn-specific config options on the command-line.
# IMNSHO, config options on the command-line are redundant given
# config files and make things unnecessarily complicated with multiple
@@ -96,7 +100,7 @@ opts = OptionParser.new("", 24, ' ') do |opts|
opts.separator "Common options:"
opts.on_tail("-h", "--help", "Show this message") do
- puts opts.to_s.gsub(/^.*DEPRECATED.*$/s, '')
+ puts opts.to_s.gsub(/^.*DEPRECATED.*$/s, '').gsub(/^.*HIDDEN.*$/s, '')
exit
end
diff --git a/lib/unicorn.rb b/lib/unicorn.rb
index e3e4315..49ad79b 100644
--- a/lib/unicorn.rb
+++ b/lib/unicorn.rb
@@ -519,7 +519,7 @@ module Unicorn
end
logger.info "executing #{cmd.inspect} (in #{Dir.pwd})"
before_exec.call(self)
- exec(*cmd)
+ exec(*cmd << "--reload")
end
proc_name 'master (old)'
end
-----------------------------------------
The patch is available here:
http://oversip.net/public/unicorn_reload.patch
(unfortunatelly I cannot attach files in this mailist as the mail is
rejected).
Regards.
--
Iñaki Baz Castillo <[email protected]>
_______________________________________________
Unicorn mailing list - [email protected]
http://rubyforge.org/mailman/listinfo/mongrel-unicorn
Do not quote signatures (like this one) or top post when replying