將Python 腳本作為Windows 服務運行
管理儲存在資料庫中的相互關聯的物件需要一個為以下物件提供更高層級介面的服務:對這些物件的操作。但是,將 Python 程式作為 Windows 服務運行以實現無需用戶登入即可自動執行的問題引起了關注。
是否可以將 Python 程式作為 Windows 服務運行?
是的,可以使用 ActivePython 中包含的或可安裝的 pythoncom 函式庫將 Python 程式作為 Windows服務運行pywin32.
範例實作
簡單服務的基本架構:
import win32serviceutil import win32service import win32event import servicemanager class AppServerSvc (win32serviceutil.ServiceFramework): _svc_name_ = "TestService" _svc_display_name_ = "Test Service" 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): servicemanager.LogMsg(servicemanager.EVENTLOG_INFORMATION_TYPE, servicemanager.PYS_SERVICE_STARTED, (self._svc_name_,'')) self.main() def main(self): pass if __name__ == '__main__': win32serviceutil.HandleCommandLine(AppServerSvc)
Windows 服務感知與管理
Windows 服務感知與管理
Windows 透過以下方式辨識該服務win32serviceutil.ServiceFramework 和servicemanager 模組。
類似/etc/init.d沒有直接等效於將啟動/停止腳本放在/etc/init.d 中視窗。 Windows 服務通常在 Windows 登錄中設定。但是,您可以利用 SystemD 或 Supervisor 等服務控制管理器來實現類似的功能。
以上是Python程式可以作為Windows服務運行嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!