sc.exe Windows service 등록시 주의할점
Posted 2014. 12. 26. 10:07java daemon program을 윈도우 서버 서비스에 등록하기 위해 구글링을 하다가 발견한 sc.exe
윈도우에 이런 명령어가 있다는 사실조차도 모르고 있었습니다.
Win32 응용프로그램 전용 명령어라서 java daemon을 실행하기 위한 bat 파일등은 사용할수 없는 제약이 있긴 합니다.
하지만 이 명령어의 옵션실행시 참 까다로운 syntax 형식을 발견하게 되었습니다.
만약 "testService" 라는 서비스를 등록하고자 한다면 다음과 같이 옵션을 주어서 실행시킵니다.
c:>sc create "testSevice" binPath="c:\testservice.exe"
이렇게 할 경우 아래와 같은 메시지를 만납니다.
D:\>sc create "testService" binPath="c:\testService.exe"
설명:
레지스트리 및 서비스 데이터베이스에 서비스 항목을 만듭니다.
사용법:
sc <서버>create [서비스 이름] [binPath= ] <옵션1> <옵션2>...
옵션:
참고: 옵션 이름은 등호(=)를 포함합니다.
등호와 값 사이에는 공백이 한 칸 있어야 합니다.
type= <own|share|interact|kernel|filesys|rec>
(default = own)
start= <boot|system|auto|demand|disabled>
(default = demand)
error= <normal|severe|critical|ignore>
(default = normal)
binPath= <BinaryPathName>
group= <LoadOrderGroup>
tag= <yes|no>
depend= <종속성(슬래시(/)로 구분)>
obj= <AccountName|ObjectName>
(default = LocalSystem)
DisplayName= <표시 이름>
password= <암호>
공백을 넣으라고? 하면서 다음과 같이 바꿔보았습니다.
c:>sc create "testSevice" binPath = "c:\testservice.exe"
동일한 메시지가 나옵니다.
원인은 바로 "등호와 값사이" 입니다.
c:>sc create "testSevice" binPath= "c:\testservice.exe"
비교하자면 binPath와 "=" 사이는 공백이 없어야 하고 "=" 과 "c:\testService.exe" 사이에는 공백이 있어야 한다는 것입니다.
참 까다로운 규칙입니다.
다 붙여도 안되고 다 띄워도 안되고 등호와 값 사이에만 공백을 띄워야 합니다. 한칸을 띄우던 열칸을 띄우던 상관은 없습니다.
'개발노트' 카테고리의 다른 글
SimpleDateFormat 사용하면서 발생한 황당한 버그 (0) | 2014.12.30 |
---|---|
java application windows service로 등록하기(nssm) (0) | 2014.12.26 |
Windows batch 파일로 날짜별 백업파일 만들기 (0) | 2014.12.16 |
Can not change version of project facet Dynamic Web Module to 2.x (0) | 2014.11.28 |
imgscalr를 이용하여 image crop & resize 하기 (0) | 2014.11.26 |
- Filed under : 개발노트