2009-10-28 4 views
6

현재 저는 win32service와 win32serviceutil을 사용하여 Windows 서비스로 실행되는 Python 프로그램을 만들고 있습니다. 서비스는 py2exe를 사용해도 실행되고 모든 것이 정상입니다 (서비스는 대상 폴더를 모니터하고 FTP는 새로 생성 된 파일을 지정된 FTP 위치로 자동 변환합니다). 그러나 로컬 및 FTP 디렉토리를 지정하기위한 몇 가지 명령 줄 인수 (설치, 제거, 시작, 중지 등)를 추가하고 싶습니다. 이 http://www.py2exe.org/old/Python 서비스 커스텀 커맨드 인수

"선택적으로, 당신은 유효한 값은, 'py2exe에'(기본값) 'pywin32'또는 '인 상태는'있는 CmdLine 스타일 '이는 py2exe하는 속성을 지정할 수 있습니다 이것에 유일한 문서는 내가에서 찾을 것입니다 'py232'는 py2exe가 항상 지원하는 전통적인 명령 행을 지정하며 'pywin32'는 pywin32가 지원하는 것과 동일한 명령 행 인수를 지원합니다 (즉, .py 파일에서 서비스를 실행할 때 지원되는 동일한 인수). ' 사용자 지정 '은 모듈이 모든 명령 줄 처리를 담당하는'HandleCommandLine '기능을 제공해야한다는 것을 의미합니다. "

올바른 방향으로 지적하면 도움이 될 것입니다. 명확성을 위해 코드가 필요한지 알려주십시오.

감사합니다, 자크

답변

3

here 사용자 정의 HandleCommandLine classmethod과 서비스를 만드는 방법의 좋은 예입니다 - 그것은 파이의 일부하지만 파이에 대한 종속성이없는, 오히려 유틸리티 "추상 기본 클래스"의 그 하위 클래스에서 몇 가지 사항을 설정하여 서비스를 서브 클래스 화하고 최소한의 번거 로움을 줄 수 있습니다. 특정 요구에 따라 복사 및 편집 할 템플릿으로 사용하여 원하는 명령 줄 처리를 얻을 수 있습니다.

+0

이 코드는 필자가 필요로하는 것일 수도 있으며 코드에 적용한 후에 다시 게시 할 것입니다. –

+0

이것은 흥미로운 해결책이었습니다. 기본적으로 추상 기본 클래스 인 BasicNTService는 서비스 매개 변수 (설치, 제거, 업데이트 등)를 정상적으로 수신합니다. 그런 다음 레지스트리를 통해 저장되고 검색되는 추가 매개 변수에 대한 명령 프롬프트에 새로운 프롬프트가 표시됩니다. –

관련 문제