[Checkins]
SVN: z3c.recipe.winservice/trunk/src/z3c/recipe/winservice/
Improved windows service installation script.
Roger Ineichen
roger at projekt01.ch
Sat Apr 12 15:12:22 EDT 2008
Log message for revision 85279:
Improved windows service installation script.
Adjust tests
Changed:
U z3c.recipe.winservice/trunk/src/z3c/recipe/winservice/README.txt
U z3c.recipe.winservice/trunk/src/z3c/recipe/winservice/service.py
U z3c.recipe.winservice/trunk/src/z3c/recipe/winservice/winservice.in
-=-
Modified: z3c.recipe.winservice/trunk/src/z3c/recipe/winservice/README.txt
===================================================================
--- z3c.recipe.winservice/trunk/src/z3c/recipe/winservice/README.txt 2008-04-12 18:10:04 UTC (rev 85278)
+++ z3c.recipe.winservice/trunk/src/z3c/recipe/winservice/README.txt 2008-04-12 19:12:21 UTC (rev 85279)
@@ -118,11 +118,9 @@
<BLANKLINE>
Installation
<BLANKLINE>
- The Zope service should be installed by the Zope Windows
- installer. You can manually install, uninstall the service from
- the commandline.
+ You can manually install, uninstall the service from the commandline.
<BLANKLINE>
- zopeservice.py [options] install|update|remove|start [...]
+ python bin\winservice.py [options] install|update|remove|start [...]
|stop|restart [...]|debug [...]
<BLANKLINE>
Options for 'install' and 'update' commands only:
@@ -187,7 +185,13 @@
import win32event
import win32process
<BLANKLINE>
+ # these are replacements from winservice recipe
+ PYTHON = r'C:\Python24\python.exe'
+ PYTHONDIR = os.path.split(PYTHON)[0]
+ PYTHONW = os.path.join(PYTHONDIR, 'pythonw.exe')
+ PYTHONSERVICE_EXE = r'%s\Lib\site-packages\win32\pythonservice.exe' % PYTHONDIR
<BLANKLINE>
+ <BLANKLINE>
# the max seconds we're allowed to spend backing off
BACKOFF_MAX = 300
# if the process runs successfully for more than BACKOFF_CLEAR_TIME
@@ -227,7 +231,7 @@
return []
<BLANKLINE>
<BLANKLINE>
- class Service(win32serviceutil.ServiceFramework):
+ class Zope3Service(win32serviceutil.ServiceFramework):
""" A class representing a Windows NT service that can manage an
instance-home-based Zope/ZEO/ZRS processes """
<BLANKLINE>
@@ -237,14 +241,12 @@
# each instance. The below-defined start_cmd (and _svc_display_name_
# and _svc_name_) are just examples.
<BLANKLINE>
- _svc_name_ = r'Zope-Instance'
- _svc_display_name_ = r'Zope instance at C:\Zope-Instance'
+ _svc_name_ = '870810267'
+ _svc_display_name_ = r'Zope 3 Windows Service'
+ _svc_description_ = r'Zope 3 Windows Service description'
<BLANKLINE>
- start_cmd = (
- r'"C:\Program Files\Zope-2.7.0-a1\bin\python.exe" '
- r'"C:\Program Files\Zope-2.7.0-a1\lib\python\Zope\Startup\run.py" '
- r'-C "C:\Zope-Instance\etc\zope.conf"'
- )
+ _exe_name_ = PYTHONSERVICE_EXE
+ start_cmd = '"%s" "%s"' % (PYTHONW, r'/sample-buildout/bin/app-script.py')
<BLANKLINE>
def __init__(self, args):
win32serviceutil.ServiceFramework.__init__(self, args)
@@ -389,28 +391,10 @@
servicemanager.PYS_SERVICE_STOPPED,
(self._svc_name_, ' (%s) ' % self._svc_display_name_))
<BLANKLINE>
- # these are replacements from winservice recipe
- PYTHON = r'...\python.exe'
- PYTHONDIR = os.path.split(PYTHON)[0]
- PYTHONW = os.path.join(PYTHONDIR, 'pythonw.exe')
- PYTHONSERVICE_EXE = r'%s\Lib\site-packages\win32\pythonservice.exe' % PYTHONDIR
- RUNZOPE = r'/sample-buildout/bin/app-script.py'
- SERVICE_NAME = str(hash(SERVICE_DISPLAY_NAME))
- SERVICE_DISPLAY_NAME = 'Zope 3 Windows Service'
- SERVICE_DESCRIPTION = 'Zope 3 Windows Service description'
<BLANKLINE>
- <BLANKLINE>
- class InstanceService(Service):
- start_cmd = '"%s" "%s"' % (PYTHONW, RUNZOPE)
- _svc_name_ = SERVICE_NAME
- _svc_display_name_ = SERVICE_DISPLAY_NAME
- _svc_description_ = SERVICE_DESCRIPTION
- _exe_name_ = PYTHONSERVICE_EXE
- <BLANKLINE>
- <BLANKLINE>
if __name__ == '__main__':
import win32serviceutil
if os.path.exists(PYTHONSERVICE_EXE):
# This ensures that pythonservice.exe is registered...
os.system('"%s" -register' % PYTHONSERVICE_EXE)
- win32serviceutil.HandleCommandLine(InstanceService)
+ win32serviceutil.HandleCommandLine(Zope3Service)
Modified: z3c.recipe.winservice/trunk/src/z3c/recipe/winservice/service.py
===================================================================
--- z3c.recipe.winservice/trunk/src/z3c/recipe/winservice/service.py 2008-04-12 18:10:04 UTC (rev 85278)
+++ z3c.recipe.winservice/trunk/src/z3c/recipe/winservice/service.py 2008-04-12 19:12:21 UTC (rev 85279)
@@ -80,12 +80,16 @@
# setup service name
defaultName = 'Zope3 %s' % self.name
+ defaultDescription = 'Zope3 windows service for %s' % self.name
+ displayName = options.get('name', defaultName)
+ serviceName = str(hash(displayName))
+ description = options.get('description', defaultDescription)
self.winServiceVars = [
("<<PYTHON>>", self.executable),
("<<RUNZOPE>>", self.runScript),
- ("<<SERVICE_DISPLAY_NAME>>", options.get('name', defaultName)),
- ("<<SERVICE_DESCRIPTION>>", options.get('description',
- defaultName)),
+ ("<<SERVICE_NAME>>", serviceName),
+ ("<<SERVICE_DISPLAY_NAME>>", displayName),
+ ("<<SERVICE_DESCRIPTION>>", description),
]
self.runZopeVars = []
Modified: z3c.recipe.winservice/trunk/src/z3c/recipe/winservice/winservice.in
===================================================================
--- z3c.recipe.winservice/trunk/src/z3c/recipe/winservice/winservice.in 2008-04-12 18:10:04 UTC (rev 85278)
+++ z3c.recipe.winservice/trunk/src/z3c/recipe/winservice/winservice.in 2008-04-12 19:12:21 UTC (rev 85279)
@@ -17,11 +17,9 @@
Installation
- The Zope service should be installed by the Zope Windows
- installer. You can manually install, uninstall the service from
- the commandline.
+ You can manually install, uninstall the service from the commandline.
- zopeservice.py [options] install|update|remove|start [...]
+ python bin\winservice.py [options] install|update|remove|start [...]
|stop|restart [...]|debug [...]
Options for 'install' and 'update' commands only:
@@ -86,7 +84,13 @@
import win32event
import win32process
+# these are replacements from winservice recipe
+PYTHON = r'<<PYTHON>>'
+PYTHONDIR = os.path.split(PYTHON)[0]
+PYTHONW = os.path.join(PYTHONDIR, 'pythonw.exe')
+PYTHONSERVICE_EXE = r'%s\Lib\site-packages\win32\pythonservice.exe' % PYTHONDIR
+
# the max seconds we're allowed to spend backing off
BACKOFF_MAX = 300
# if the process runs successfully for more than BACKOFF_CLEAR_TIME
@@ -126,7 +130,7 @@
return []
-class Service(win32serviceutil.ServiceFramework):
+class Zope3Service(win32serviceutil.ServiceFramework):
""" A class representing a Windows NT service that can manage an
instance-home-based Zope/ZEO/ZRS processes """
@@ -136,14 +140,12 @@
# each instance. The below-defined start_cmd (and _svc_display_name_
# and _svc_name_) are just examples.
- _svc_name_ = r'Zope-Instance'
- _svc_display_name_ = r'Zope instance at C:\Zope-Instance'
+ _svc_name_ = '<<SERVICE_NAME>>'
+ _svc_display_name_ = r'<<SERVICE_DISPLAY_NAME>>'
+ _svc_description_ = r'<<SERVICE_DESCRIPTION>>'
- start_cmd = (
- r'"C:\Program Files\Zope-2.7.0-a1\bin\python.exe" '
- r'"C:\Program Files\Zope-2.7.0-a1\lib\python\Zope\Startup\run.py" '
- r'-C "C:\Zope-Instance\etc\zope.conf"'
- )
+ _exe_name_ = PYTHONSERVICE_EXE
+ start_cmd = '"%s" "%s"' % (PYTHONW, r'<<RUNZOPE>>')
def __init__(self, args):
win32serviceutil.ServiceFramework.__init__(self, args)
@@ -288,28 +290,10 @@
servicemanager.PYS_SERVICE_STOPPED,
(self._svc_name_, ' (%s) ' % self._svc_display_name_))
-# these are replacements from winservice recipe
-PYTHON = r'<<PYTHON>>'
-PYTHONDIR = os.path.split(PYTHON)[0]
-PYTHONW = os.path.join(PYTHONDIR, 'pythonw.exe')
-PYTHONSERVICE_EXE = r'%s\Lib\site-packages\win32\pythonservice.exe' % PYTHONDIR
-RUNZOPE = r'<<RUNZOPE>>'
-SERVICE_NAME = str(hash(SERVICE_DISPLAY_NAME))
-SERVICE_DISPLAY_NAME = '<<SERVICE_DISPLAY_NAME>>'
-SERVICE_DESCRIPTION = '<<SERVICE_DESCRIPTION>>'
-
-class InstanceService(Service):
- start_cmd = '"%s" "%s"' % (PYTHONW, RUNZOPE)
- _svc_name_ = SERVICE_NAME
- _svc_display_name_ = SERVICE_DISPLAY_NAME
- _svc_description_ = SERVICE_DESCRIPTION
- _exe_name_ = PYTHONSERVICE_EXE
-
-
if __name__ == '__main__':
import win32serviceutil
if os.path.exists(PYTHONSERVICE_EXE):
# This ensures that pythonservice.exe is registered...
os.system('"%s" -register' % PYTHONSERVICE_EXE)
- win32serviceutil.HandleCommandLine(InstanceService)
+ win32serviceutil.HandleCommandLine(Zope3Service)
More information about the Checkins
mailing list