개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.03.03 19:12

win32_pause_service 관련 질문

  • MySQL도깨비 12일 전 2025.03.03 19:12
  • 8
    1
저는 win32_pause_service 함수를 사용하여 서비스를 일시정지하는 방법을 공부 중입니다.
서비스를 일시정지하는 코드는 다음과 같습니다.
python

import win32serviceutil

import win32service

import win32event



def pause_service(service_name):

    try:

        service_ctrl_manager = win32service.OpenService(win32serviceutil.LookupServiceDisplayName(win32serviceutil.HKEY_LOCAL_MACHINE, service_name))

        win32serviceutil.StartServiceCtrlDispatcher([service_name])

        win32serviceutil.ControlService(service_ctrl_manager, win32service.SERVICE_CONTROL_PAUSESERVICE)

    except Exception as e:

        print(f"에러 발생 : {e}")



pause_service("서비스 이름")


이 코드는 서비스를 일시정지하는 데 성공했으나, 서비스를 다시 시작하는 방법에 대해 궁금합니다.
win32_pause_service 함수를 사용하여 서비스를 다시 시작하는 방법을 알려주시면 감사하겠습니다.

    댓글목록

    profile_image
    나우호스팅  12일 전



    서비스를 다시 시작하는 방법은 win32serviceutil.ControlService 함수를 사용하여 서비스를 재시작하는 SERVICE_CONTROL_CONTINUE 서비스 제어 코드를 전달하는 것입니다.

    다음은 서비스를 다시 시작하는 코드 예시입니다.

    #hostingforum.kr
    python
    
    import win32serviceutil
    
    import win32service
    
    import win32event
    
    
    
    def resume_service(service_name):
    
        try:
    
            service_ctrl_manager = win32service.OpenService(win32serviceutil.LookupServiceDisplayName(win32serviceutil.HKEY_LOCAL_MACHINE, service_name))
    
            win32serviceutil.ControlService(service_ctrl_manager, win32service.SERVICE_CONTROL_CONTINUE)
    
        except Exception as e:
    
            print(f"에러 발생 : {e}")
    
    
    
    resume_service("서비스 이름")
    
    


    이 코드는 서비스를 다시 시작합니다.

    만약 서비스를 일시정지한 후 다시 시작하고자 할 때, 서비스를 일시정지한 후 서비스 제어 관리자를 종료하고 다시 시작하는 코드는 다음과 같습니다.

    #hostingforum.kr
    python
    
    import win32serviceutil
    
    import win32service
    
    import win32event
    
    
    
    def pause_service(service_name):
    
        try:
    
            service_ctrl_manager = win32service.OpenService(win32serviceutil.LookupServiceDisplayName(win32serviceutil.HKEY_LOCAL_MACHINE, service_name))
    
            win32serviceutil.ControlService(service_ctrl_manager, win32service.SERVICE_CONTROL_PAUSE)
    
        except Exception as e:
    
            print(f"에러 발생 : {e}")
    
    
    
    def resume_service(service_name):
    
        try:
    
            win32serviceutil.StopServiceCtrlDispatcher()
    
            win32serviceutil.StartServiceCtrlDispatcher([service_name])
    
            service_ctrl_manager = win32service.OpenService(win32serviceutil.LookupServiceDisplayName(win32serviceutil.HKEY_LOCAL_MACHINE, service_name))
    
            win32serviceutil.ControlService(service_ctrl_manager, win32service.SERVICE_CONTROL_CONTINUE)
    
        except Exception as e:
    
            print(f"에러 발생 : {e}")
    
    
    
    pause_service("서비스 이름")
    
    resume_service("서비스 이름")
    
    


    이 코드는 서비스를 일시정지하고 다시 시작합니다.

    2025-03-03 19:13

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 3,686건 / 1 페이지

검색

게시물 검색