> On Feb 2, 2017, at 1:17 AM, Роман Мещеряков <romanmescherya...@yandex.ru> 
> wrote:
> 
> Hello everyone! I wrote Twisted-based TCP server which is capable of running 
> in several relatively different modes. When mode switch is needed, I would 
> like the server to restart itself by some means, for it to read new mode from 
> configuration file and create corresponding implementation. Also I wanted the 
> restart to occur without re-running twistd process, because it seems to me 
> more appropriate for Linux daemon.

Hi Roman,

Sorry it took a while to get to this one :).

If your solution is working for you, then it's fine.  You've correctly 
understood the API associated with IServiceCollection and your implementation 
(at least at first glance, I don't have time to test it exhaustively :)) is 
correct.

However, there's a more philosophical question as well: if you really want to 
re-start from scratch, what exactly are you shutting down and starting up 
again?  Wouldn't you want to be able to load new code?  Simply stopping and 
starting objects won't re-initialize the process from the beginning, only from 
some indeterminate middle state where parts of the program are already set up; 
this doesn't have the usual desired effect of a "restart" where potentially 
unknown or buggy state is cleared away.

You may want to consider simply calling execv 
https://docs.python.org/2.7/library/os.html#os.execv 
<https://docs.python.org/2.7/library/os.html#os.execv> with [sys.executable] + 
sys.argv rather than trying to do this in terms of Twisted's APIs.

-glyph

_______________________________________________
Twisted-Python mailing list
Twisted-Python@twistedmatrix.com
http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python

Reply via email to