Python的Windows服务 – 没有响应从内置的exe的启动/停止(但在Python中)

这是我第一次build立一个Windows服务,我以为我有它的工作。 安装为python aservice.py install正常工作,并作出相应的响应。

但是,因为我将需要安装此服务的机器,将不会安装python,我想将其构build到一个可执行文件,可以安装该服务。 尽pipe可执行文件成功安装服务,但是当我尝试手动启动时,或者通过net startsc start ,服务不响应。

手动启动返回 – 错误1053:服务没有及时响应启动或控制请求。

净开始返回 – 服务没有响应控制function。

当用python安装时,它响应所有的命令,并正常工作。 不知道在构build过程中发生了什么,但我显然缺less一些东西

使用Python 3.4 64位。 所有需要该服务的盒子也将是64位。

服务定义

 class aservice(win32serviceutil.ServiceFramework): _svc_name_ = "Test Login Service" _svc_display_name_ = "Test Login Service" _svc_description_ = "Test" def __init__(self, args): win32serviceutil.ServiceFramework.__init__(self, args) self.hWaitStop = win32event.CreateEvent(None, 0, 0, None) def SvcStop(self): self.ReportServiceStatus(win32service.SERVICE_STOP_PENDING) win32event.SetEvent(self.hWaitStop) def SvcDoRun(self): import servicemanager servicemanager.LogMsg(servicemanager.EVENTLOG_INFORMATION_TYPE,servicemanager.PYS_SERVICE_STARTED,(self._svc_name_, '')) self.timeout = 3000 while 1: # Wait for service stop signal, if I timeout, loop again rc = win32event.WaitForSingleObject(self.hWaitStop, self.timeout) # Check to see if self.hWaitStop happened if rc == win32event.WAIT_OBJECT_0: # Stop signal encountered servicemanager.LogInfoMsg("aservice - STOPPED") break else: servicemanager.LogInfoMsg("aservice - is alive and well") ...Doing Things... servicemanager.LogInfoMsg("Logon Service Has Completed, Stopping") time.sleep(10) break def ctrlHandler(ctrlType): return True if __name__ == '__main__': win32api.SetConsoleCtrlHandler(ctrlHandler, True) win32serviceutil.HandleCommandLine(aservice) 

setup.py

 `from distutils.core import setup import py2exe # setup.py # class Target: def __init__(self, **kw): self.__dict__.update(kw) # for the versioninfo resources self.version = "0.5.0" self.company_name = "Company" self.copyright = "no copyright" self.name = "Test22" myservice = Target( description = 'Edit Logon Service', modules = ['Logon_Service'], cmdline_style='pywin32' ) ` 

构build命令= python setup.py py2exe

我也试过setup.py与Windows一样,工作原理相同,但不打印控制台日志。

任何想法如何我可以在没有Python的计算机上正确安装此服务?

编辑:setup.py工作

Solutions Collecting From Web of "Python的Windows服务 – 没有响应从内置的exe的启动/停止(但在Python中)"

 `from distutils.core import setup import py2exe # setup.py # class Target: def __init__(self, **kw): self.__dict__.update(kw) # for the versioninfo resources self.version = "0.5.0" self.company_name = "Company" self.copyright = "no copyright" self.name = "Test22" myservice = Target( description = 'Edit Logon Service', modules = ['Logon_Service'], cmdline_style='pywin32' ) `