diff options
-rw-r--r-- | lib/unicorn/http_server.rb | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/lib/unicorn/http_server.rb b/lib/unicorn/http_server.rb index 78d80b4..ad5d6f0 100644 --- a/lib/unicorn/http_server.rb +++ b/lib/unicorn/http_server.rb @@ -408,7 +408,13 @@ class Unicorn::HttpServer end self.reexec_pid = fork do - listener_fds = LISTENERS.map { |sock| sock.fileno } + listener_fds = LISTENERS.map do |sock| + # IO#close_on_exec= will be available on any future version of + # Ruby that sets FD_CLOEXEC by default on new file descriptors + # ref: http://redmine.ruby-lang.org/issues/5041 + sock.close_on_exec = false if sock.respond_to?(:close_on_exec=) + sock.fileno + end ENV['UNICORN_FD'] = listener_fds.join(',') Dir.chdir(START_CTX[:cwd]) cmd = [ START_CTX[0] ].concat(START_CTX[:argv]) |