Python 스크립트 윈도우 서비스로 등록하기

최근 허니팟 관련 스크립트를 작성하여 서버가 재부팅 되는 경우 서버 로그인 전에 자동으로 실행이 되도록 하기 위해 해당 스크립트를 서비스로 등록하는 작업을 진행하여 보았습니다.

Resource Kit Tools 설치

Windows Server 2003 용 : http://www.microsoft.com/downloads/details.aspx?FamilyID=9d467a69-57ff-4ae7-96ee-b18c4790cffd&displaylang=en

Batch 파일 작성

서비스로 등록시킬 스크립트 파일을 아래와 같이 작성한다. C:\Python25\python.exe C:\Service\test.py > c:\Service\log.txt

서비스 등록

아래 명령어로 서비스를 등록한다. C:\Program Files\Windows Resource Kits\Tools\instsrv [서비스명] C:\Program Files\Windows Resource Kits\Tools\srvany.exe

레지스트리 등록

아래 레지스트리 값으로 이동 하여 Key값 및 Value값을 추가 한다. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services[서비스명]

서브 Key 추가 : Parameters Parameters Key 하위에 아래와 같은 이름으로 Value(문자열값) 추가

Application = "C:\Service\start.bat" AppDirectory = "C:\Service" AppParameters = " "

서비스 실행 계정 변경

[제어판] - [관리도구] - [서비스]로 이동하여 방금 생성한 서비스 실행 계정을 Administrator로 변경한다.

배치파일 생성

마지막으로 start.bat 파일 구성에 대해 알아보겠습니다. 제가 작성한 배치파일 내용 입니다.

start.bat

1
2
start /D "c:\Sample Downloader\Service\" /B URL-always.bat
start /D "c:\Sample Downloader\Service\" /B URL-down.txt.bat

URL-always.bat

1
c:\python25\python.exe "c:\Sample Downloader\URL-always.py" 2> "C:\Logger\URL-always.log"

URL-down.txt.bat

1
c:\python25\python.exe "c:\Sample Downloader\URL-down.txt.py" 2> "C:\Logger\URL-down.txt.log"

이렇게 3개의 배치파일을 통해 서비스로 start.bat 파일을 실행하면 자동으로 원하는 Python 스크립트를 다수 실행하며 에러를 기록할 수 있습니다.

Hugo로 만듦
Jimmy의 Stack 테마 사용 중