Rodrigo Rosenfeld Rosas <[email protected]> wrote:
> For a long time I struggle to understand this part:
> 
> http://unicorn.bogomips.org/SIGNALS.html
> 
> "3. You can now send WINCH to the old master process so only the new
> workers serve requests. If your unicorn process is bound to an
> interactive terminal, you can skip this step."
> 
> I asked a teammate and he didn't understand this part either, so
> maybe it's confusing for other people too.
> 
> Would you mind to clarify what you mean by that?

It means actions on the terminal which started unicorn won't affect it.
So if the user hits Ctrl-C from the terminal, unicorn will not receive
SIGINT.  Likewise for Ctrl-\ and SIGINT, and if a user resizes his
terminal (common with xterm and friends), there's no SIGWINCH.

setsid(2) is the syscall used to detach from a controlling terminal
(among other things).  Maybe there's documentation elsewhere to the
setsid(2) which explains this part more, but neither the POSIX nor Linux
manpage for that distributed by Debian (wheezy) really explain this.

> Also, a section with suggestions on how to properly automate a
> deployment with no downtime would be helpful.
> 
> What I see is that most recipes, like the ones I've seen for
> Capistrano for example, will simply send a QUIT after USR2 to the
> old master without actually checking if the deploy was successful
> and won't use the WINCH and HUP signals to deal with health
> checking...

Patches welcome.  I haven't deployed an app entirely with Capistrano in
years nor do I use any common/widely-known deployment system.  I usually
just end using something like the init script in examples/init.sh
_______________________________________________
Unicorn mailing list - [email protected]
http://rubyforge.org/mailman/listinfo/mongrel-unicorn
Do not quote signatures (like this one) or top post when replying

Reply via email to