[Zope-dev] Possible Windows Service improvements.
Mark Hammond
mhammond at skippinet.com.au
Tue Oct 12 02:39:48 EDT 2004
Ressurecting a bit of an old thread:
> From: Chris McDonough [mailto:chrism at plope.com]
> Sent: Wednesday, 4 August 2004 11:19 PM
> Subject: Re: [Zope-dev] Possible Windows Service improvements.
...
> I'm a Windows signal idiot.
I was too. I think I understand them a little better now after having
played with both the signal module, and the win32 specific functions.
> Is there a way that we can make the Zope
> process capture Windows signals and when the Windows equivalent of
> SIGTERM is sent to the process to shut it down "cleanly"? This is how
> it works on UNIX, but we circumvent trying to listen for signals on
> Windows entirely at startup. There are all sorts of hooks for "clean"
> shutdown now that we can coopt if we can make the process capture a
> signal.
I've uploaded a patch to http://collector.zope.org/Zope/1527. I'd
appreciate any comments - specifically about if I have hooked the
appropriate place.
My first reaction was that the correct hooks were in SignalHandler.py and
Signals.py - however, Windows signals really aren't suitable for hooking
there - only SIGINT is supported. Trying to twist code into pretending
signals on Windows worked like Linux ended up with a bit of a mess. Hacking
Lifetime.py was the cleanest solution.
> Note that the UNIX environment has a lot of additional niceties due to
> responses to signals (like logfile rotation) that Windows doesn't now,
> which tends to have the effect of relegating Windows to a second-class
> platform on which to run a production Zope instance.
I guess the correct way to do that gets back to the other issue this thread
raised - cross-platform startup/error reporting and command handling. I
fear that will take a little longer to implement. I hope to break this up
into 2 tasks:
* Give windows reliable shutdown behaviour now.
* Try and develop a basis for reliable cross-platform parent/child
notification and control.
I think the first would allow us to gracefully shutdown services - at the
moment the child process is immediately terminated! The second would give
us better startup and error recovery, but that seems less important to me.
I hope to submit a patch for the service code shortly.
Mark
More information about the Zope-Dev
mailing list