본문으로 건너뛰기
로그인 둘러보기
개발·코딩·데이터베이스 · 시스템·유틸리티 · 윈도우즈 유틸

serv

0

serv는 NSSM의 현대적인 크로스 플랫폼 후속작으로, 어떤 긴 실행 파일도 하나의 YAML 설정 파일로 Windows 서비스(Linux에서는 systemd, macOS에서는 launchd 유닛)로 설치할 수 있는 도구입니다.

CLI 도구NSSM 대체Windows 서비스YAML 설정서비스 관리시스템 서비스크로스 플랫폼프로세스 감시

소개

serv는 NSSM의 현대적인 크로스 플랫폼 후속작으로, 어떤 긴 실행 파일도 하나의 YAML 설정 파일로 Windows 서비스(Linux에서는 systemd, macOS에서는 launchd 유닛)로 설치할 수 있는 도구입니다. TillmanBuildsTech가 개발했으며, GUI 없이 CLI 중심으로 작동하여 NSSM에서 부족했던 현대적인 프로세스 감시 기능들을 제공합니다.

상세정보

크로스 플랫폼 설정

Windows, Linux, macOS에서 동일한 ServiceConfig YAML 파일을 사용하여 서비스를 설치하고 관리할 수 있습니다. 설정 파일은 버전 관리 시스템에 체크인하여 모든 환경에서 동일하게 사용할 수 있습니다.

현대적인 프로세스 감시

NSSM에서 부족했던 기능들을 제공합니다:

  • 단계적 우아한 종료: Windows에서는 Ctrl+C → 창 닫기 → 스레드 종료 → 종료 단계로, Linux/macOS에서는 SIGTERM → SIGKILL 단계로 종료를 시도하며 각 단계별 타임아웃을 설정할 수 있습니다.
  • 프로세스 트리 종료: 서비스 중지/재시작 시 전체 후손 프로세스 트리를 종료하며, PID 재사용 보호 기능을 포함합니다.
  • 지수적 백오프가 있는 자동 재시작: 반복적인 실패 시 지수적 백오프로 재시작하며, 안정적인 가동 시간 후 리셋됩니다.
  • stdout/stderr 캡처 및 로테이션: 크기 및 날짜 기반 로테이션과 타임스탬프가 포함된 로그 파일을 생성합니다.
  • 생명주기 훅: pre-start, post-start, pre-stop, post-exit 단계에서 커맨드를 실행할 수 있습니다.

Windows 서비스 계정 관리

LocalSystem, LocalService, NetworkService, 가상 서비스 계정 또는 커스텀 도메인/로컬 사용자 계정을 지원하며, 커스텀 계정은 “서비스로 로그온” 권한을 자동으로 부여합니다.

다운로드·설치 방법

여러 패키지 관리자를 통해 설치할 수 있습니다:

  • Windows (WinGet): winget install TillmanBuildsTech.Serv
  • Windows (Chocolatey): choco install serv
  • macOS (Homebrew): brew install serv
  • Node.js (어디서든): npm install -g @tillmanbuildstech/serv

기본 사용법

명령어를 사용하여 서비스를 설치하고 관리할 수 있습니다:

  • 서비스 설치: serv install –exe /path/to/myapp –name myapp
  • 서비스 시작: serv start myapp
  • 서비스 상태 확인: serv status myapp
  • 서비스 목록: serv list
  • 서비스 중지: serv stop myapp
  • 서비스 제거: serv remove myapp

YAML 설정 파일을 사용한 설치도 가능합니다: serv install –config myapp.yaml

설치 후 설정 파일은 OS별 시스템 디렉토리에 저장됩니다 (Windows의 경우 C:ProgramDataservmyappconfig.yaml).

이런 경우에 유용합니다

  • Windows, Linux, macOS 환경에서 실행 중인 애플리케이션을 네이티브 서비스로 관리해야 할 때
  • NSSM의 기능이 부족하거나 크로스 플랫폼 지원이 필요할 때
  • GUI 없이 CLI 중심으로 서비스를 배포하고 관리해야 할 때
  • 프로세스 종료, 로그 관리, 생명주기 훅 등 고급 기능이 필요할 때

지원 환경·시스템 요구사항

serv는 Windows, Linux, macOS에서 지원됩니다. Node.js가 설치되어 있다면 npm을 통해 어디서든 설치할 수 있습니다.

최신 버전·업데이트

현재 버전은 0.2.0이며, GitHub 저장소의 CHANGELOG.md를 통해 최신 릴리스 정보와 업데이트 내역을 확인할 수 있습니다.

라이선스

MIT 라이선스로 배포됩니다.

시스템 요구사항

별도의 시스템 요구사항이 등록되지 않았습니다.