본문 바로가기
프로그래밍/윈도우

[윈도우] 일반 프로그램을 서비스로 등록하는 방법

by 소나기_레드 2023. 3. 4.
반응형

일반 어플리케이션을 서비스로 만들어두면 오류시 재시동 등을 OS가 알아서 해주는 등 많은 장점이 있습니다. 이 짧은 글에서는 서비스로 만들 것을 고려하지 않은 어플리케이션을 서비스로 등록하는 방법에 대해 정리해 봅니다. 

1. 먼저 instsrv.exe 와 srvany.exe 두 개의 파일이 필요합니다.

이 파일들은 윈도 리소스킷에 들어있으니 다음 위치에서 다운받아 설치하세요. 

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

 

타이틀 ; Windows Server 2003 Resource Kit Tools

Supported Operating Systems: Windows Server 2003; Windows XP

파일명 : rktools.exe

 

2. 리소스킷을 설치했다면 커맨드창에서 다음과 같이 실행합니다.

instsrv "서비스이름" "서비스로 등록할 실행파일 전체 경로 포함된 파일명" 
예) instsrv "TEST" "C:\TEST\TEST.EXE"

3. 레지스트리 편집기(regedit)에 들어가 방금 설치한 서비스 항목을 찾아 보면
다음과 같이 레지스트리 키가 생성 되었을 것입니다.


HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\서비스이름
예)HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TEST

레지스트리에 생성된 서비스를 선택한 후, 마우스 오른쪽키를 눌러 "새로만들기-> 키" 를 클릭합니다.

새 키 이름을 'Parameters'로 변경합니다.

"Parameters" 키를 선택한 후, 마우스 오른쪽키를 눌러 "새로만들기->문자열 값"를 클릭합니다. 이름을 'Application' 이라고 변경합니다.  생성된 'Application' 을 더블클릭한 후 값데이터에 서비스로 등록할 프로그램의 전체 경로가 포함된 이름을 적어 주세요. ( 예) C:\test\test.exe )
만약 커맨드라인 파라미터가 필요하다면 'Pameters'키에 "문자열 값"을 추가하고 이름을 'AppParameters'라고 한 후, 값 데이터에 파라미터 값을 적어주면 됩니다.

 

"제어판->관리도구->서비스"에 표시되는 이름은  DisplayName 의 값에 설정합니다.

종속성을 설정해야하는 경우는, 서비스 이름을 클릭하면 우측에 표시되는 이름 중 DependOnService 항목에 값을 입력하면 됩니다. (예 : MSSQL에 종속되는 프로그램인 경우는 MSSQLSERVER 를 값으로 입력합니다.)

 

개발 툴에서 프로그래밍 할 경우에는 등록한 서비스 이름으로 처리해 줘야 합니다.

 

"제어판 -> 관리도구 -> 서비스" 에서 위에서 등록한 서비스를 관리할 수 있습니다.

 

출처 : www.delphi.co.kr 

 

< 일부 내용은 보기 편하도록 추가 수정 삭제 하였습니다. >

반응형

댓글