Window 서비스 등록 시 생긴 이슈

lejehwan·2023년 6월 5일
0

SSI

목록 보기
3/4
post-thumbnail

서비스를 등록 시키고, 레지스트리 값을 할당해주는 배치 파일을 패치 해야 했던 적이 있었다.
이 과정에서 Windows Services.msc에 등록한 서비스가 실행되지 않는 문제에 대해 해결 했던 경험을 써보려고 한다.


- 해당 이슈가 생겼을 때, 아래와 같이 확인을 해보았었다.

  1. 자바 환경변수가 올바르게 설정 되었는가?(환경 변수 우선 순위도 확인) -> O
    1.1 시스템 설정에서 수동으로 설정한 값(우선)
    1.2 레지스트리에 설정된 값
  2. cmd 창에서 jar 파일을 실행이 잘 되는가? -> O
  3. 관리자 권한으로 실행 해보았는가? -> O

그렇게 여러가지 확인을 해보던 중, 서비스를 등록하는 과정에서 한 가지 이상한 점이 발견되었다.

그것은 바로 서비스를 등록하는 이름과 레지스트리에 등록할 이름이 동일해야 한다는 것이다.


📌실행할 batch 파일과

instsrv [서비스명] %SystemRoot%\system32\srvany.exe	|
[등록할 레지스트리 파일명]	

📌등록할 레지스트리 파일 내용 중

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\[등록할 레지스트리 파일 명]\Parameters]	|
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\[등록할 레지스트리 파일 명]	

batch 파일의 [서비스 명] 에 해당하는 부분이 레지스트리 파일 내용 중 [등록할 레지스트리 파일 명]과 동일해야 함.

만약 다를 경우 레지스트리에 해당 서비스에 대한 값을 부여받지 못하기에 서비스가 실행 하자마자 바로 죽을 것이다.


🔥 참고 - 저자 기준

  1. 서비스 파일 등록 전 필요한 앱
  • instrsrv.exe
  • srvany.exe
  • srvany.wri
  • STVINSTW.EXE
    위 4가지 항목은 %SystemRoot%\system32\ 하위에 존재
  1. 서비스 등록 시 필요한 앱
  • test.vat(서비스 명 및 등록할 레지스트리 파일)
  • test.reg(레지스트리 설정 값)
  • test.jar(실행 할 자바 아카이브)
  1. 서비스 및 레지스트리 확인 위치(실행 창 (로고 + r))
  • service.msc
  • regedit

🔥 후기

놓쳤던 부분은 서비스와 레지스트리에 이름으로 맞춰야 한다는 것이 어찌보면 당연히 맞물리기 위한 조건이였을 텐데 바로 생각하지 못해서 아쉬웠지만, 이렇게 또 이렇게 하나의 문제를 해결했다는 점과, 새로운 것을 배웠다는 점에서 기뻤다.

리눅스는 만져볼 기회가 많았는데 윈도우의 서비스나 레지스트리 같은 부분은 전혀 이번 기회로 조금 더 알게된거 같아서 기쁘다.
다만 윈도우의 이벤트 로그에 좀더 자세히 나와있었으면 좋았겠다 라는 생각도 ㅎㅎ..

profile
hello world:)

0개의 댓글

관련 채용 정보