Jim Fulton wrote: > For some time, Zope has used a daemon-management tool > we wrote called zdaemon: > > http://www.python.org/pypi/zdaemon > > Ironically, this sort of tool isn't Python specific at all, > and the discussion highlighted some non-Python tools, notably > daemontools and runit, neither of which seemed as appealing > as zdaemon for various reasons.
and Robert Brewer replied: > The user interface isn't Python-specific, but the interaction with > WSGI servers, middleware, applications, and frameworks should be. and Jim answered: > I don't think we are talking about the same thing... > > I encourage you to look at the zope event system which already > supports this use case: > > http://www.python.org/pypi/zope.event Yes, and Django has a similar mechanism which they call "signals": http://code.djangoproject.com/wiki/Signals What several people have asked for is the ability to combine applications (and WSGI components) from a variety of frameworks into a single "website". What I'm proposing is that we standardize on a set of topics/channels/events/signals that are "site-wide" events, like start, stop, restart and graceful. If we collaborated on a tool to manage those, we could potentially make the codebases of each project smaller, not just by removing the event manager, but by collaborating on a set of standard event handlers, one of which could be a "daemonize me" handler. What we have now: CherryPy Zope Django -------- ------ ------- ??? events signals | | | autoreload ??? autoreload | | | engine zdrun ??? | | | ??? zdctl ??? What we could have instead: webctl modpython_gateway | / ------------ pywebd ------------ / | \ -------- ------ ------ CherryPy Zope Django ...where the "pywebd" module: 1. Composes the WSGI stack (provides a library to do so at least), 2. Notifies frameworks of site-wide events (like start, stop, restart and graceful), 3. Provides plugins that frameworks can "notify"; for example, adding files to an autoreload plugin. > I think your "sitewide container" is the main program that loads > the WSGI components. This might be Apache, if mod_python is > used, or some Python script/program. Apache itself is not going to be the chunk of code that loads the WSGI components. In my head, a modpython_gateway module (or something similar) would ask pywebd to do that. > I was discussing a tool that managed the main program in the > latter case. Something that started and restarted it, provided > status information, helped it to run as a proper daemon and so on. Sure, something like zdctl? But zdctl doesn't do the actual fork, zdrun does...so what does "help run as a proper daemon" mean? Robert Brewer System Architect Amor Ministries [EMAIL PROTECTED] _______________________________________________ Web-SIG mailing list Web-SIG@python.org Web SIG: http://www.python.org/sigs/web-sig Unsubscribe: http://mail.python.org/mailman/options/web-sig/archive%40mail-archive.com