From fb9794835b764beea00bb040c68a72f3a1ae0360 Mon Sep 17 00:00:00 2001 From: Antony Lesuisse <al@openerp.com> Date: Tue, 18 Nov 2014 23:27:48 +0100 Subject: [PATCH] [FIX] windows ctrl-c from cmd as a non admin return False when calling is_running_as_nt_service from a non adminstrator account. --- openerp/service/server.py | 2 +- openerp/tools/osutil.py | 11 +++++++---- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/openerp/service/server.py b/openerp/service/server.py index 617c2d757df7..5ea05df81127 100644 --- a/openerp/service/server.py +++ b/openerp/service/server.py @@ -26,7 +26,7 @@ if os.name == 'posix': import resource else: # Windows shim - signal.SIGHUP = 0 + signal.SIGHUP = -1 # Optional process names for workers try: diff --git a/openerp/tools/osutil.py b/openerp/tools/osutil.py index 94684d34673d..afe3fc459f39 100644 --- a/openerp/tools/osutil.py +++ b/openerp/tools/osutil.py @@ -139,10 +139,13 @@ else: finally: ws.CloseServiceHandle(srv) - with close_srv(ws.OpenSCManager(None, None, ws.SC_MANAGER_ALL_ACCESS)) as hscm: - with close_srv(wsu.SmartOpenService(hscm, nt_service_name, ws.SERVICE_ALL_ACCESS)) as hs: - info = ws.QueryServiceStatusEx(hs) - return info['ProcessId'] == getppid() + try: + with close_srv(ws.OpenSCManager(None, None, ws.SC_MANAGER_ALL_ACCESS)) as hscm: + with close_srv(wsu.SmartOpenService(hscm, nt_service_name, ws.SERVICE_ALL_ACCESS)) as hs: + info = ws.QueryServiceStatusEx(hs) + return info['ProcessId'] == getppid() + except Exception: + return False if __name__ == '__main__': from pprint import pprint as pp -- GitLab