
nssm (Non-Sucking Service Manager)은 Windows 환경에서 Java 애플리케이션이나 기타 실행 파일을 Windows 서비스처럼 등록해서 관리할 수 있게 해주는 매우 실용적인 도구 🤡
인프라가 열악하여
api 서버를 스테이션 남는거에 돌리고 있는데
정전이라도 일어나면 데이터 동기화 스케줄러들이 죽는게 아닌가 :(
그래도 외부 유지보수 업체분들이 작업하고 스테이션은 꼭 정상화 이후에 키고 가니
서버라도 알아서 재부팅하게 설정해보도록 하자
도커를 사용하다가 윈도우에서는 너무 무겁고
굳이 컨테이너로 배포할 필요가 없다
그래서 찾다가 발견된 nssm !!!!! 🐝🐝🐝🐝🐝

1. 커맨드로 nssm.exe를 실행해보면 ( nssm.exe 파일이 있는 경로에서 실행!)
-help 명령어와 같이 프로그램 커맨드에 대한 설명이 나온다
자세한 설명은 공식문서를 참고!!
2. 서비스 등록 명령어 입력 시 gui 창과 함께 설정 할 수 있다.
.\nssm.exe install FS-Service

✅ NSSM의 장점
| 🔄 자동 재시작 지원 | 서비스가 비정상 종료될 경우 자동 재시작 가능 |
| 🚀 부팅 시 자동 시작 가능 | Windows 서비스로 등록되기 때문에 시스템 부팅 후 자동 실행 가능 |
| 🔒 보안 계정 지정 가능 | 특정 사용자 권한으로 서비스 실행 가능 (예: 도메인 계정, 로컬 계정 등) |
| 📂 작업 디렉토리 지정 | 애플리케이션이 실행될 경로를 지정할 수 있어 경로 문제 회피 |
| 📄 표준 출력/에러 로그 파일 지정 가능 | I/O 탭에서 stdout, stderr 파일 지정해 콘솔 로그 저장 가능 |
| 🧙 설정이 GUI로 쉬움 | GUI 기반이라 직관적으로 설정 가능 (nssm install) |
| 🆓 가볍고 무료 | 설치 없이도 단일 실행 파일로 사용 가능 (Portable) |
❌ NSSM의 단점
| ⚠️ 정식 유지보수 중단 | 공식적으로는 개발이 중단되었고, NSSM 2.24가 마지막 릴리즈입니다 |
| 🔍 에러 로그는 기본적으로 콘솔 출력 | 별도로 파일 로그 설정하지 않으면 문제 원인 파악 어려움 |
| 🔄 서비스 설정 변경 시 수동 재등록 필요 | 설정 변경이 즉시 반영되지 않고 재시작 필요할 수 있음 |
| ❌ GUI 외에 설정 자동화가 번거로움 | GUI는 편리하지만 대규모 자동화에는 CLI 또는 PowerShell이 더 적합 |
| 📦 복잡한 애플리케이션에는 한계 | 복잡한 Dependency가 있는 경우엔 sc.exe 또는 WinSW, nssm + bat 조합이 필요할 수 있음 |
🧠 NSSM이 적합한 케이스
- Java JAR(Spring Boot 등)을 윈도우에서 백그라운드 서비스로 실행하고 싶을 때
- .exe 또는 .bat 파일을 부팅 시 자동으로 실행하고 싶은 경우
- Docker/VM 없이 Windows 서버에서 간단하게 WAS 구동 자동화하고 싶을 때
- 사내 시스템에서 매우 간단한 백엔드 서비스 자동화가 필요할 때
💬 요약
"작지만 강력한 윈도우 서비스 매니저"가 필요하다면 NSSM은 최고의 선택 중 하나로
다만, 장기적으로는 WinSW, PowerShell 서비스 등록 스크립트, 또는 NSSM 대체 오픈소스들도 고려해볼 수 있다.
Ref
NSSM - the Non-Sucking Service Manager
NSSM - the Non-Sucking Service Manager nssm is a service helper which doesn't suck. srvany and other service helper programs suck because they don't handle failure of the application running as a service. If you use such a program you may see a service lis
nssm.cc
'Develop > DevOps' 카테고리의 다른 글
| 구 레거시 윈도우 서버 프로젝트 (IIS / ASP) 이관 도전기 (6) | 2025.07.30 |
|---|---|
| newman 을 이용하여 node 서버 부하 테스트 및 pm2 클러스트 모드 사용 / 커넥션 풀 사용하여 부하 예방하기 🐝 (6) | 2024.11.12 |
| [모니터링] 프로메테우스 + 그라파나 모니터링 시스템 구축하기 (feat micrometer) (70) | 2024.02.14 |
| 아파치 카프카(APACHE Kafka) 그게 도대체 뭔데 😤 카프카 기본 개념에 대해 알아보자 (93) | 2023.11.17 |
| 자주 사용하는 linux 필수 명령어 모음 (2) | 2023.07.23 |