[FIX] win32 service: configure service via sc.exe
authorChristophe Simonis <chs@openerp.com>
Fri, 30 Nov 2012 11:38:28 +0000 (12:38 +0100)
committerChristophe Simonis <chs@openerp.com>
Fri, 30 Nov 2012 11:38:28 +0000 (12:38 +0100)
bzr revid: chs@openerp.com-20121130113828-abweveb1ryzptvhf

win32/OpenERPServerService.py

index c529b58..3f86c40 100644 (file)
@@ -74,26 +74,29 @@ class OpenERPServerService(win32serviceutil.ServiceFramework):
 def option_handler(opts):
     # configure the service to auto restart on failures...
     service_name = OpenERPServerService._svc_name
+    restart_msg = "Restarting %s" % (OpenERPServerService._svc_display_name_,)
 
-    hscm = win32service.OpenSCManager(None, None, win32service.SC_MANAGER_ALL_ACCESS)
-    try:
-        hs = win32serviceutil.SmartOpenService(hscm, service_name, win32service.SERVICE_ALL_ACCESS)
-        try:
-            service_failure_actions = {
-                'ResetPeriod': 0,   # Time in ms after which to reset the failure count to zero.
-                'RebootMsg': u'',   # Not using reboot option
-                'Command': u'',     # Not using run-command option
-                'Actions': [
-                    (win32service.SC_ACTION_RESTART, 10),    # action, delay in ms
-                    (win32service.SC_ACTION_RESTART, 10),
-                    (win32service.SC_ACTION_RESTART, 10),
-                ]
-            }
-            win32service.ChangeServiceConfig2(hs, win32service.SERVICE_CONFIG_FAILURE_ACTIONS, service_failure_actions)
-        finally:
-            win32service.CloseServiceHandle(hs)
-    finally:
-        win32service.CloseServiceHandle(hscm)
+    subprocess.call('sc failure %s reset= 0 reboot= %r actions= reboot/0/reboot/0/reboot/0' % (service_name, restart_msg))
+
+    # hscm = win32service.OpenSCManager(None, None, win32service.SC_MANAGER_ALL_ACCESS)
+    # try:
+    #     hs = win32serviceutil.SmartOpenService(hscm, service_name, win32service.SERVICE_ALL_ACCESS)
+    #     try:
+    #         service_failure_actions = {
+    #             'ResetPeriod': 0,   # Time in ms after which to reset the failure count to zero.
+    #             'RebootMsg': u'',   # Not using reboot option
+    #             'Command': u'',     # Not using run-command option
+    #             'Actions': [
+    #                 (win32service.SC_ACTION_RESTART, 10),    # action, delay in ms
+    #                 (win32service.SC_ACTION_RESTART, 10),
+    #                 (win32service.SC_ACTION_RESTART, 10),
+    #             ]
+    #         }
+    #         win32service.ChangeServiceConfig2(hs, win32service.SERVICE_CONFIG_FAILURE_ACTIONS, service_failure_actions)
+    #     finally:
+    #         win32service.CloseServiceHandle(hs)
+    # finally:
+    #     win32service.CloseServiceHandle(hscm)
 
 
 if __name__ == '__main__':