diff options
author | Eric Wong <e@80x24.org> | 2015-05-20 22:15:48 +0000 |
---|---|---|
committer | Eric Wong <e@80x24.org> | 2015-05-20 23:07:14 +0000 |
commit | a6077391bb62d0b13016084b0eea36b987afe8f0 (patch) | |
tree | b670d05121fe444947e541f00bfd7d8801ea0953 /lib | |
parent | a4de697505d95858e6bd62b3bc0474688a3522d7 (diff) | |
download | unicorn-a6077391bb62d0b13016084b0eea36b987afe8f0.tar.gz |
Some process managers such as foreman and daemontools rely on unicorn not daemonizing, but we still want to be able to process SIGWINCH in that case. stdout and stderr may be redirected to a pipe (for cronolog or similar process), so those are less likely to be attached to a TTY than stdin. This also allows users to process SIGWINCH when running inside a regular terminal if they redirect stdin to /dev/null. Reported-by: Dan Moore <dan@vaporwa.re> References: <etPan.555b4293.5b47a5b7.e617@danbookpro> <20150519232858.GA23515@dcvr.yhbt.net>
Diffstat (limited to 'lib')
-rw-r--r-- | lib/unicorn/http_server.rb | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/lib/unicorn/http_server.rb b/lib/unicorn/http_server.rb index 82747b8..cf8e122 100644 --- a/lib/unicorn/http_server.rb +++ b/lib/unicorn/http_server.rb @@ -294,13 +294,13 @@ class Unicorn::HttpServer when :USR2 # exec binary, stay alive in case something went wrong reexec when :WINCH - if Unicorn::Configurator::RACKUP[:daemonized] + if $stdin.tty? + logger.info "SIGWINCH ignored because we're not daemonized" + else respawn = false logger.info "gracefully stopping all workers" soft_kill_each_worker(:QUIT) self.worker_processes = 0 - else - logger.info "SIGWINCH ignored because we're not daemonized" end when :TTIN respawn = true |