[FIX] correct reexecute. works for windows service
authorChristophe Simonis <chs@openerp.com>
Wed, 5 Dec 2012 17:56:30 +0000 (18:56 +0100)
committerChristophe Simonis <chs@openerp.com>
Wed, 5 Dec 2012 17:56:30 +0000 (18:56 +0100)
bzr revid: chs@openerp.com-20121205175630-6y8ul4ki13z0coyh

openerp/service/__init__.py

index 849df17..c714c01 100644 (file)
@@ -23,6 +23,7 @@
 import logging
 import os
 import signal
+import subprocess
 import sys
 import threading
 import time
@@ -34,6 +35,7 @@ import openerp.cron
 import openerp.modules
 import openerp.netsvc
 import openerp.osv
+from openerp.release import nt_service_name
 import openerp.tools
 import openerp.service.wsgi_server
 
@@ -132,7 +134,7 @@ def start_services_workers():
 def _reexec():
     """reexecute openerp-server process with (nearly) the same arguments"""
     if openerp.tools.osutil.is_running_as_nt_service():
-        os.abort()
+        subprocess.call('sc stop {0} && sc start {0}'.format(nt_service_name), shell=True)
     exe = os.path.basename(sys.executable)
     strip_args = ['-d', '-u']
     a = sys.argv[:]