>백엔드 개발 >파이썬 튜토리얼 >Python 스크립트를 Windows 서비스로 실행할 수 있습니까?

Python 스크립트를 Windows 서비스로 실행할 수 있습니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-12-04 09:44:14293검색

Can Python Scripts Be Run as Windows Services?

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.