If you go to the control panel of a running Zope, you'll see it display
"Running For" with the correct number of seconds. So there's obviously an
existing way for the server to know when it was started, just look how the
control panel does it.
Florent
Victor Safronovich wrote:
VS>How could i find the moment when zope was started in Zope 2.8?
VS>in Zope 2.7 was the variable 'Zope.Startup.started', which setted to
True when
VS>zope was started.
VS>But in Zope 2.8 the variable 'Zope2.Startup.started' not changed its
value to
VS>True, because Zope2.Startup.start_zope was never called, instead of that
called
VS>Zope2.Startup.run.run function.
this may be fixed like in attachment.
Index: __init__.py
===
--- __init__.py (revision 39858)
+++ __init__.py (working copy)
@@ -28,13 +28,17 @@
logger = logging.getLogger("Zope")
started = False
+starter = None
def get_starter():
-check_python_version()
-if sys.platform[:3].lower() == "win":
-return WindowsZopeStarter()
-else:
-return UnixZopeStarter()
+global starter
+if starter is None:
+check_python_version()
+if sys.platform[:3].lower() == "win":
+starter = WindowsZopeStarter()
+else:
+starter = UnixZopeStarter()
+return starter
def start_zope(cfg, debug_handler):
"""The function called by run.py which starts a Zope appserver."""
@@ -47,11 +51,11 @@
starter.setConfiguration(cfg)
starter.prepare()
-started = True
+starter.start()
try:
starter.run()
finally:
-started = False
+starter.finish()
class ZopeStarter:
@@ -59,6 +63,8 @@
Making it a class makes it easier to test.
"""
+started = False
+
def __init__(self):
self.event_logger = logging.getLogger()
# We log events to the root logger, which is backed by a
@@ -81,6 +87,14 @@
def setConfiguration(self, cfg):
self.cfg = cfg
+def start(self):
+global started
+self.started = started = True
+
+def finish(self)
+global started
+self.started = started = False
+
def prepare(self):
self.setupInitialLogging()
self.setupLocale()
Index: run.py
===
--- run.py (revision 39858)
+++ run.py (working copy)
@@ -15,11 +15,7 @@
def run():
""" Start a Zope instance """
import Zope2.Startup
-starter = Zope2.Startup.get_starter()
-opts = _setconfig()
-starter.setConfiguration(opts.configroot)
-starter.prepare()
-starter.run()
+Zope2.Startup.start_zope(_setconfig().configroot, None)
def configure(configfile):
""" Provide an API which allows scripts like zopectl to configure
___
Zope-Dev maillist - Zope-Dev@zope.org
http://mail.zope.org/mailman/listinfo/zope-dev
** No cross posts or HTML encoding! **
(Related lists -
http://mail.zope.org/mailman/listinfo/zope-announce
http://mail.zope.org/mailman/listinfo/zope )
--
Florent Guillaume, Nuxeo (Paris, France) CTO, Director of R&D
+33 1 40 33 71 59 http://nuxeo.com [EMAIL PROTECTED]
___
Zope-Dev maillist - Zope-Dev@zope.org
http://mail.zope.org/mailman/listinfo/zope-dev
** No cross posts or HTML encoding! **
(Related lists -
http://mail.zope.org/mailman/listinfo/zope-announce
http://mail.zope.org/mailman/listinfo/zope )