15 logger.handlers = [handlers.NTEventLogHandler('cubicweb')] |
15 logger.handlers = [handlers.NTEventLogHandler('cubicweb')] |
16 |
16 |
17 os.environ['CW_INSTANCES_DIR'] = r'C:\etc\cubicweb.d' |
17 os.environ['CW_INSTANCES_DIR'] = r'C:\etc\cubicweb.d' |
18 os.environ['USERNAME'] = 'cubicweb' |
18 os.environ['USERNAME'] = 'cubicweb' |
19 |
19 |
20 |
|
21 class CWService(object, win32serviceutil.ServiceFramework): |
20 class CWService(object, win32serviceutil.ServiceFramework): |
22 _svc_name_ = None |
21 _svc_name_ = None |
23 _svc_display_name_ = None |
22 _svc_display_name_ = None |
24 instance = None |
23 instance = None |
25 |
24 |
26 def __init__(self, *args, **kwargs): |
25 def __init__(self, *args, **kwargs): |
27 win32serviceutil.ServiceFramework.__init__(self, *args, **kwargs) |
26 win32serviceutil.ServiceFramework.__init__(self, *args, **kwargs) |
28 self._stop_event = win32event.CreateEvent(None, 0, 0, None) |
|
29 cwcfg.load_cwctl_plugins() |
27 cwcfg.load_cwctl_plugins() |
30 set_log_methods(CubicWebRootResource, logger) |
28 set_log_methods(CubicWebRootResource, logger) |
31 server.parsePOSTData = parsePOSTData |
29 server.parsePOSTData = parsePOSTData |
32 |
30 |
33 def SvcStop(self): |
31 def SvcStop(self): |
34 self.ReportServiceStatus(win32service.SERVICE_STOP_PENDING) |
32 self.ReportServiceStatus(win32service.SERVICE_STOP_PENDING) |
35 logger.info('stopping %s service' % self.instance) |
33 logger.info('stopping %s service' % self.instance) |
36 win32event.SetEvent(self._stop_event) |
34 reactor.stop() |
37 self.ReportServiceStatus(win32service.SERVICE_STOPPED) |
35 self.ReportServiceStatus(win32service.SERVICE_STOP_PENDING) |
38 |
36 |
39 def SvcDoRun(self): |
37 def SvcDoRun(self): |
40 self.ReportServiceStatus(win32service.SERVICE_START_PENDING) |
38 self.ReportServiceStatus(win32service.SERVICE_START_PENDING) |
41 logger = getLogger('cubicweb.twisted') |
39 logger = getLogger('cubicweb.twisted') |
42 logger.info('starting %s service' % self.instance) |
40 logger.info('starting %s service' % self.instance) |