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
