El Miércoles, 23 de Diciembre de 2009, Eric Wong escribió: > First off I really don't think you need to be using DRb for this or > (generally) sticking things into the master process that don't belong > there.
The problem is: how to start a server (which binds in a TCP port) in just one worker? humm, would the following make sense?: after_fork do |server, worker| # Start DRb server just in worker[0] if worker.nr == 0 ... start DRb server ... end end But it would also fail upon receipt of USR2 as there would be two instances of the DRb server trying to bind on same port... > > Is there any way to achive this? > > I could imagine a new config option "on_usr2" (or "before_reexec") so the > > passsed block would be executed upon receipt of USR2 (before the real > > "reexec" method). > > > > Does it make sense? > > There's already a similar before_exec hook documented in > http://unicorn.bogomips.org/Unicorn/Configurator.html > But it is called after forking, so the listener will be shared. Hummm, perhaps I could use the above code plus: before_exec do |server| .... stop DRb server ... end In this way the DRb server is stopped before exec and started in the new worker[0]. Just a problem, how to access to existing/old worker[0] from "before_exec" in order to stop the DRb server? > But again, you don't need to use DRb for this. As I've said in other thread I want DRb to get some info related to the application. A DRb client console could be used to check application database(s) connection and so. What would you suggest for this rather than DRb server? Again thanks a lot for your help. -- Iñaki Baz Castillo <i...@aliax.net> _______________________________________________ Unicorn mailing list - mongrel-unicorn@rubyforge.org http://rubyforge.org/mailman/listinfo/mongrel-unicorn Do not quote signatures (like this one) or top post when replying