0

我在 python 中编写了一个 Windows 服务,以将一些文本连续写入文件并安装并运行它,它工作正常。现在,如果我尝试使用 py2exe 将我的 python windows 服务脚本转换为可执行文件 (.exe)。.exe 作为服务安装得很好,但是当我尝试启动它时,我收到错误“服务器没有及时响应启动......”。这是否与 py2exe 破坏我的 python 脚本中的信息有关。我该如何解决这个问题?(我正在尝试将其转换为 .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)
4

1 回答 1

0

查看http://tools.cherrypy.org/wiki/WindowsService上的示例,您似乎需要添加self.ReportServiceStatus(win32service.SERVICE_STOPPED)作为 SvcStop 方法的最后一行。

于 2013-05-29T05:39:35.563 回答