[Distutils] entry point for new installations?
Phillip J. Eby
pje at telecommunity.com
Mon Mar 20 23:11:59 CET 2006
At 04:02 PM 3/20/2006 -0500, Kevin Dangoor wrote:
>Someone just prodded me about automatic application reloading, which
>is always a hairy topic. The autoreload code that many people run in
>development mode forks to run the actual application in a child
>process, and everything in sys.modules is watched for a change. If one
>of the files change, the child exits and the parent process fires off
>a new one. It's ugly, but it's reliable and is generally fine for
>For TurboGears apps, I'm of the opinion that the right way to deploy
>an app to production is to turn it into an egg and install it. I had
>the (not entirely fleshed out) thought that it might be interesting if
>there was an entry_point that got called when new eggs were installed.
>This would make it possible to notify a running server that it needs
>to be restarted.
An entry point won't really help you much here, because it would have to
know how to perform this notification. Presumably, it would either have to
talk to a socket or modify a file somewhere.
However, if you're going to have to monitor for file changes anyway, then
you might as well just monitor sys.path directories for new .egg files, or
monitor changes to easy-install.pth files.
The only other thing I can think of that would work is if you had server
processes write their process IDs some place, and then the hypothetical
entry point could send them SIGHUPs or something. But monitoring
file/directory changes is a bit more cross-platform, doesn't require adding
any entry point code, is probably part of existing reload code, and doesn't
require a pidfile arena, with all the associated permissions and cleanup
More information about the Distutils-SIG