[Nssm] windows 서비스 관리하기
서비스란 ??
Windows
에서 서비스란 프로그램을 백그라운드로 실행, 관리 할수있도록 도와주는 도구를 의미한다.
Linux
에서는 Daemon
이라는 개념도 같은 개념이라고 볼 수 있다.
nssm 이란 ??
nssm
은 Non-Sucking-Service-Manager
의 약자로 윈도우
에서 서비스를 추가, 수정, 삭제와 같은 관리를 할때 도와주는 도구이다.
리눅스
가 익숙한 사람들은 systemctl
systemd
와 같은 명령어라고 생각하면 이해하기 쉬울것이다.
—
사용 개요
개발환경이나 운영환경에서 필요한서비스
는 보통 리눅스
에서 많이 관리한다. 나의 경우에는 회사 제품중에 윈도우
PC의 특정 디렉토리의 로그파일을 감시해서 모니터링 하는 시스템이 있었다.
개발과정에서 시뮬레이션 해보기위해 첫번째로 로그파일을 실제로 남기는것처럼 윈도우
배치파일
을 이용해 텍스트파일을 주기적으로 바꿔주고, 배치파일을
서비스
로 등록해보기로 하였다.
테스트 서비스파일 생성
테스트 해볼 디렉토리에 다음과 같이 만들어 주었다.
5초마다 텍스트파일을 업데이트하는 simulator.bat
을 아래와 같이 만들어주었다.
@echo off
setlocal enabledelayedexpansion
:: 로그 파일 설정
set "logFile=./dummy.txt"
:: 무한 루프 시작
:loop
:: 현재 시간(초) 기준으로 로그 결정
set /a "index=(%time:~6,2% / 5) %% 3 + 1"
:: index를 이용해 로그 메시지 설정
set "logMessage=!index!번째 로그"
:: 로그 메시지를 파일에 추가
echo !logMessage! >> "%logFile%"
:: 5초 대기
timeout /t 5 /nobreak >nul
goto loop
nssm으로 윈도우 서비스 등록
-
아래 링크에서
nssm
를 설치해준다.
-
nssm 환경변수 설정
C:\Program Files
경로에nssm
폴더를 만들고 다운로드 받은 파일을 넣어준다.-
컴터에 사양에 맞는
nssm
파일을환경변수
에 등록해준다.
- 터미널을 열고 명령어를 입력해준다.
nssm install 서비스명
- 서비스로 실행시킬 파일 Path, Service name 확인후 클릭
- 서비스 정상 등록 확인
nssm 명령어 정리
추가로 nssm
으로 자주 쓰일것 같은 명령어를 찾아봤다.
명령어 | 설명 |
---|---|
nssm start 서비스명 | 등록된 서비스 실행 |
nssm stop 서비스명 | 등록된 서비스 종료 |
nssm restart 서비스명 | 등록된 서비스 재실행 |
nssm status 서비스명 | 등록된 서비스 상태 확인 |
nssm edit 서비스명 | 등록된 서비스 수정 |
nssm remove 서비스명 | 등록된 서비스 삭제 |
Leave a comment