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

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

1. Resource Kit Tools 설치

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

2. Batch 파일 작성

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

3. 서비스 등록

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

4. 레지스트리 등록

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

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

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

5. 서비스 실행 계정 변경

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

6. 배치파일 생성

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

start.bat

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

URL-always.bat

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

URL-down.txt.bat

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

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

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다