CODE‎ > ‎Python‎ > ‎

寫成win服務

將 win32serviceutil.HandleCommandLine(test1) 的 test1 更改成自己的檔名,當然class名稱也得跟著改名


# -*- coding: utf8 -*- 

import win32serviceutil 
import win32service 
import win32event 

class test1(win32serviceutil.ServiceFramework): 
    _svc_name_ = "test_python" 
    _svc_display_name_ = "test_python" 
    def __init__(self, args): 
        win32serviceutil.ServiceFramework.__init__(self, args) 



        self.hWaitStop = win32event.CreateEvent(None, 0, 0, None) 

    def SvcStop(self): 
        # 先告诉SCM停止这个过程 
        self.ReportServiceStatus(win32service.SERVICE_STOP_PENDING) 
        # 设置事件 
        win32event.SetEvent(self.hWaitStop) 

    def SvcDoRun(self): 
        # 等待服务被停止 
        win32event.WaitForSingleObject(self.hWaitStop, win32event.INFINITE) 

if __name__=='__main__': 
    win32serviceutil.HandleCommandLine(test1)
Comments