From c9cb89612517c433b41c77de63f72a8e5c308a1b Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Mon, 5 Oct 2009 22:56:52 -0700 Subject: SIGNALS: add Rainbows!-specific notes Mainly need to note the unfortunate minor difference in log reopening semantics. --- SIGNALS | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) (limited to 'SIGNALS') diff --git a/SIGNALS b/SIGNALS index 84f6bb4..14f2184 100644 --- a/SIGNALS +++ b/SIGNALS @@ -2,7 +2,10 @@ In general, signals need only be sent to the master process. However, the signals Rainbows! uses internally to communicate with the worker -processes are documented here as well. +processes are documented here as well. With the exception of TTIN/TTOU, +signal handling matches the behavior of and {nginx}[http://nginx.net/] +so it should be possible to easily share process management scripts +between \Rainbows!, Unicorn and nginx. === Master Process @@ -43,16 +46,17 @@ automatically respawned. * USR1 - Reopen all logs owned by the worker process. See Unicorn::Util.reopen_logs for what is considered a log. - Log files are not reopened until it is done processing - the current request, so multiple log lines for one request - (as done by Rails) will not be split across multiple logs. + Unlike Unicorn, log files are reopened immediately in \Rainbows! + since worker processes are likely to be serving multiple clients + simutaneously, we can't wait for all of them to finish. === Procedure to replace a running rainbows executable -You may replace a running instance of unicorn with a new one without +You may replace a running instance of rainbows with a new one without losing any incoming connections. Doing so will reload all of your -application code, Unicorn config, Ruby executable, and all libraries. -The only things that will not change (due to OS limitations) are: +application code, Unicorn/Rainbows! config, Ruby executable, and all +libraries. The only things that will not change (due to OS limitations) +are: 1. The path to the rainbows executable script. If you want to change to a different installation of Ruby, you can modify the shebang -- cgit v1.2.3-24-ge0c7