서비스를 등록 시키고, 레지스트리 값을 할당해주는 배치 파일을 패치 해야 했던 적이 있었다.
이 과정에서 Windows Services.msc에 등록한 서비스가 실행되지 않는 문제에 대해 해결 했던 경험을 써보려고 한다.
그렇게 여러가지 확인을 해보던 중, 서비스를 등록하는 과정에서 한 가지 이상한 점이 발견되었다.
그것은 바로 서비스를 등록하는 이름과 레지스트리에 등록할 이름이 동일해야 한다는 것이다.
📌실행할 batch 파일과
instsrv [서비스명] %SystemRoot%\system32\srvany.exe |
[등록할 레지스트리 파일명]
📌등록할 레지스트리 파일 내용 중
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\[등록할 레지스트리 파일 명]\Parameters] |
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\[등록할 레지스트리 파일 명]
batch 파일의 [서비스 명] 에 해당하는 부분이 레지스트리 파일 내용 중 [등록할 레지스트리 파일 명]과 동일해야 함.
만약 다를 경우 레지스트리에 해당 서비스에 대한 값을 부여받지 못하기에 서비스가 실행 하자마자 바로 죽을 것이다.
놓쳤던 부분은 서비스와 레지스트리에 이름으로 맞춰야 한다는 것이 어찌보면 당연히 맞물리기 위한 조건이였을 텐데 바로 생각하지 못해서 아쉬웠지만, 이렇게 또 이렇게 하나의 문제를 해결했다는 점과, 새로운 것을 배웠다는 점에서 기뻤다.
리눅스는 만져볼 기회가 많았는데 윈도우의 서비스나 레지스트리 같은 부분은 전혀 이번 기회로 조금 더 알게된거 같아서 기쁘다.
다만 윈도우의 이벤트 로그에 좀더 자세히 나와있었으면 좋았겠다 라는 생각도 ㅎㅎ..