我在python中编写了一个Windows服务,将一些文本连续写入文件并安装并运行它并且工作正常。现在,如果我尝试使用py2exe将我的python windows服务脚本转换为可执行文件(.exe)。 .exe安装很好作为服务,但当我尝试启动它时,我得到错误"服务器没有及时响应开始......#34;。这是否与我的python脚本中的py2exe破坏信息有关。我该如何解决这个问题? (我试图将其转换为.exe,因为我想分发它。)
我的python脚本如下:
import win32service
import win32serviceutil
import win32event
class clear_queue(win32serviceutil.ServiceFramework):
_svc_name_ = "avant"
_svc_display_name_ = "avant"
_svc_description_ = "Elegant file writer"
def __init__(self, args):
win32serviceutil.ServiceFramework.__init__(self,args)
self.hWaitStop = win32event.CreateEvent(None, 0, 0, None)
def SvcDoRun(self):
import servicemanager;
fil = open("C:/Users/u/Desktop/c99/user.txt",'r+');
rc = win32event.WaitForSingleObject(self.hWaitStop, 64)
while rc != win32event.WAIT_OBJECT_0:
fil.write("george\n");
rc = win32event.WaitForSingleObject(self.hWaitStop, 64)
def SvcStop(self):
self.ReportServiceStatus(win32service.SERVICE_STOP_PENDING)
win32event.SetEvent(self.hWaitStop)
if __name__ == '__main__':
win32serviceutil.HandleCommandLine(clear_queue)
答案 0 :(得分:0)
查看http://tools.cherrypy.org/wiki/WindowsService处的示例,看起来您需要添加self.ReportServiceStatus(win32service.SERVICE_STOPPED)
作为SvcStop方法的最后一行。