[Zope-Coders] extra-clean shutdown, signal handling

Toby Dickenson tdickenson@geminidataloggers.com
Thu, 31 Oct 2002 12:32:20 +0000


On Wednesday 30 October 2002 2:08 pm, Guido van Rossum wrote:
> Does anyone understand why
> zdaemon does fork+fork+exec rather than just fork+fork?

I think this makes a difference in the following sequence:

1. start zope, and wait a while
2. update the zope source
3. use the through-the-web 'restart'=20

Zope will always use the original modules if they were imported before th=
e=20
first fork, and will pick up any changes to other modules that are only=20
imported later. This could lead to using mismatched versions of modules f=
or=20
anyone working from cvs, or performing an online upgrade.

Below is a list of these early-imported modules.=20

-1 for losing the exec, unless we can trim this list to only include stuf=
f=20
inside zdaemon.




App
App.Common
App.FindHomes
App.version_txt
ExtensionClass
Lifetime
Products
Signals
Signals.Signals
ZLogger
ZLogger.ZLogger
ZLogger.stupidFileLogger
ZLogger.syslog
ZLogger.syslogLogger
ZPublisher
ZPublisher.BaseRequest
ZPublisher.BaseResponse
ZPublisher.Converters
ZPublisher.HTTPRequest
ZPublisher.HTTPResponse
ZPublisher.Publish
ZPublisher.Request
ZPublisher.Response
ZPublisher.TaintedString
ZPublisher.mapply
ZPublisher.maybe_lock
ZPublisher.xmlrpc
ZServer
ZServer.DebugLogger
ZServer.FCGIServer
ZServer.FTPRequest
ZServer.FTPResponse
ZServer.FTPServer
ZServer.HTTPResponse
ZServer.HTTPServer
ZServer.PCGIServer
ZServer.Producers
ZServer.PubCore
ZServer.PubCore.ZEvent
ZServer.PubCore.ZRendezvous
ZServer.PubCore.ZServerPublisher
ZServer.medusa
ZServer.medusa.asynchat
ZServer.medusa.asyncore
ZServer.medusa.counter
ZServer.medusa.default_handler
ZServer.medusa.filesys
ZServer.medusa.ftp_server
ZServer.medusa.http_date
ZServer.medusa.http_server
ZServer.medusa.logger
ZServer.medusa.m_syslog
ZServer.medusa.medusa_gif
ZServer.medusa.mime_type_table
ZServer.medusa.monitor
ZServer.medusa.producers
ZServer.medusa.resolver
ZServer.medusa.status_handler
ZServer.medusa.test
ZServer.medusa.test.max_sockets
ZServer.medusa.thread
ZServer.medusa.thread.select_trigger
asyncore
xmlrpclib
zExceptions
zExceptions.ExceptionFormatter
zExceptions.unauthorized
zLOG
zLOG.FormatException
zLOG.MinimalLogger
zdaemon
zdaemon.Daemon
zdaemon.SignalHandler
zdaemon.ZDaemonLogging