diff options
-rw-r--r-- | lib/rainbows/base.rb | 2 | ||||
-rw-r--r-- | lib/rainbows/http_server.rb | 8 |
2 files changed, 9 insertions, 1 deletions
diff --git a/lib/rainbows/base.rb b/lib/rainbows/base.rb index 03cf624..4597239 100644 --- a/lib/rainbows/base.rb +++ b/lib/rainbows/base.rb @@ -23,7 +23,7 @@ module Rainbows # we're don't use the self-pipe mechanism in the Rainbows! worker # since we don't defer reopening logs HttpServer::SELF_PIPE.each { |x| x.close }.clear - trap(:USR1) { reopen_worker_logs(worker.nr) rescue nil } + trap(:USR1) { reopen_worker_logs(worker.nr) } trap(:QUIT) { G.quit! } [:TERM, :INT].each { |sig| trap(sig) { exit!(0) } } # instant shutdown logger.info "Rainbows! #@use worker_connections=#@worker_connections" diff --git a/lib/rainbows/http_server.rb b/lib/rainbows/http_server.rb index 0d34d40..a1ec4f6 100644 --- a/lib/rainbows/http_server.rb +++ b/lib/rainbows/http_server.rb @@ -18,6 +18,14 @@ module Rainbows @worker_connections ||= MODEL_WORKER_CONNECTIONS[@use] end + def reopen_worker_logs(worker_nr) + logger.info "worker=#{worker_nr} reopening logs..." + Unicorn::Util.reopen_logs + logger.info "worker=#{worker_nr} done reopening logs" + rescue + G.quit! # let the master reopen and refork us + end + #:stopdoc: # # Add one second to the timeout since our fchmod heartbeat is less |