※ 파이썬 파일을 서비스로 등록하는 방법에 대해 정리합니다.

참고 : 두가지 방법 중 W2K3 Resource Kit을 이용한 방법만을 사용할 예정이므로 그 부분에 대해선 테스트 부분을
         첨부한다. 따라서 두번째 방법에 대한 것은 Link를 참고하기 바란다. 

1. Windows Resource Kit 을 이용한 서비스 등록
참고 사이트 : [Python] 윈도우 서비스 스크립트 만들기
다운로드 사이트 : Windows Server 2003 Resource Kit Tools ( Windows 7/8용을 별도로 지원하지 않음 )
- 대상 파일 : Instsrv.exe / srvany.exe 
( 다운로드 후 설치하는 것이 번거롭다면 하위의 파일을 다운받아서 실행하면 된다. 비밀번호 없음 )


Step 1. Windows Resource Kit으로 부터 파일을 다운로드 한다 .
Step 2. Command에서 다음과 같이 입력한다. 

c:\> Instsrv.exe [서비스명] srvany.exe

Instsrv.exe 와 srvany.exe는 전체 경로를 입력하거나 Root에 파일을 위치시킨 후 실행시킨다. 


Step 3. 서비스용 Batch파일을 생성한다. 

Step 4. 레지스트리 수정

[ 문제점 ]
한번 등록한 서비스는 작업관리자를 통한 강제 종료를 제외하곤 서비스 제어가 되지 않는다. ( 서비스 중지/종료 )

2. PyWin32를 이용한 서비스 등록
참고 사이트 : Python으로 Windows Service 시작해보기

[ 문제점 ]
SERVICE_STOPPED를 전달할 경우 알 수 없는 Handle ( Invalid Handle ) 버그가 발생하며 서비스가 제어가 되지 않는다.

[ 결론 ]
어떠한 방법을 사용하던 Python Script를 윈도우의 서비스로 등록/실행은 가능하다. 하지만 정지가 되지 않는 문제점이 있다. 



Posted by GhostKei
,
※ 튜플을 이용한 다양한 데이터 가공 방법들을 게시합니다.

* 2개의 튜플을 하나의 Dictionary로 만들기
import itertools
adict = dict(itertools.izip(keys,values)) 

Posted by GhostKei
,
※ List를 이용한 다양한 데이터 가공 방법에 대해 게시합니다.

* 2개의 List를 결합해 하나의 Dictionary 만들기
dictionary = dict(zip(keys, values))
 
Posted by GhostKei
,