Python 스크립트를 Windows 서비스로 실행
Python으로 서비스 기반 시스템을 개발하는 과정에서 이것이 가능한지에 대한 의문이 제기됩니다. Python 스크립트를 Windows 서비스로 실행합니다. 이 기사에서는 이 질문을 다루고 포괄적인 답변을 제공합니다.
실제로 ActivePython에 포함된 pythoncom 라이브러리를 활용하거나 pywin32 확장을 통해 Python 프로그램을 Windows 서비스로 호스팅하는 것이 가능합니다. 이 프로세스를 설명하려면 기본 서비스에 대한 다음 코드 뼈대를 고려하십시오.
import win32serviceutil import win32service import win32event import servicemanager import socket 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) socket.setdefaulttimeout(60) 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)
main() 함수에 사용자 정의 코드를 삽입합니다. 일반적으로 에 설정된 플래그를 모니터링하여 중단할 수 있는 무한 루프를 배포합니다. SvcStop 방법.
또한 Windows는 서비스 관리자를 통해 서비스 존재에 대한 경고를 받습니다. 서비스 콘솔(services.msc) 또는 sc 명령줄 도구와 같은 기본 Windows 유틸리티를 사용하여 이를 모니터링하고 관리할 수 있습니다. 시작/중지 스크립트를 위한 Unix의 /etc/init.d 디렉토리와 유사하게 Windows는 서비스 관리를 위해 scm(서비스 제어 관리자)을 사용합니다. sc 유틸리티를 활용하면 서비스 생성, 시작, 중지, 구성 등 서비스에 대한 다양한 작업을 수행할 수 있습니다.
위 내용은 Python 스크립트를 Windows 서비스로 실행할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!