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는 다음을 통해 서비스를 인식합니다. win32serviceutil.ServiceFramework 및 servicemanager 모듈.
제어판의 서비스 애플릿과 같은 기본 Windows 유틸리티를 사용하거나 다음과 같은 명령줄을 통해 서비스를 관리할 수 있습니다.
/etc/init.d와 유사
/etc/init.d에 시작/중지 스크립트를 넣는 것과 직접적으로 동등한 것은 없습니다. 윈도우. Windows 서비스는 일반적으로 Windows 레지스트리에서 구성됩니다. 그러나 SystemD 또는 Supervisor와 같은 서비스 제어 관리자를 활용하여 유사한 기능을 구현할 수 있습니다.
위 내용은 Python 프로그램을 Windows 서비스로 실행할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!