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

Servy

0

Servy는 Akram El Assas가 개발한 무료 오픈소스 윈도우 서비스 관리 도구입니다. 모든 응용 프로그램을 네이티브 윈도우 서비스로 실행하고, 시작 유형, 프로세스 우선순위, CPU 친화성, 로깅, 헬스 체크, 환경 변수, 의존성, 라이프사이클 훅 등을 세밀하게 제어할 수 있습니다.

Windows 서비스서비스 관리오픈소스자동화

소개

Servy는 Akram El Assas가 개발한 무료 오픈소스 윈도우 서비스 관리 도구입니다. 모든 응용 프로그램을 네이티브 윈도우 서비스로 실행하고, 시작 유형, 프로세스 우선순위, CPU 친화성, 로깅, 헬스 체크, 환경 변수, 의존성, 라이프사이클 훅 등을 세밀하게 제어할 수 있습니다. 데스크톱 앱, CLI, PowerShell 모듈을 통해 대화형 또는 스크립트 기반으로 서비스를 생성하고 관리할 수 있습니다.

상세정보

프로그램 소개

Servy는 모든 응용 프로그램을 네이티브 윈도우 서비스로 실행할 수 있는 기업용 윈도우 서비스 래퍼입니다. SignPath Foundation에서 제공한 코드 서명 인증서로 디지털 서명되어 있어 게시자 검증과 Microsoft 보안 인텔리전스에 의한 SmartScreen 경고 방지가 가능합니다.

주요 기능

  • 서비스 생성 및 관리: 데스크톱 앱(GUI), CLI, PowerShell 모듈을 통해 서비스를 생성, 구성 및 관리할 수 있습니다.
  • 실시간 모니터링: Servy Manager에서 설치된 모든 서비스의 CPU 및 RAM 사용량을 실시간 성능 그래프로 모니터링하고, stdout/stderr 출력을 스트리밍합니다.
  • 서비스 의존성 시각화: 상태 표시기가 포함된 서비스 의존성 트리를 시각화하여 보여줍니다.
  • 스크립팅 및 자동화: CLI와 PowerShell 모듈을 통해 전체 스크립팅 및 자동화된 배포를 지원합니다.
  • granular 설정: 서비스 이름, 설명, 시작 유형, 우선순위, CPU 친화성, 작업 디렉토리, 환경 변수 및 의존성을 설정할 수 있습니다.
  • 환경 변수 확장: 매개변수, 프로세스 경로 및 시작 디렉토리에서 환경 변수 확장을 지원합니다.
  • 다양한 서비스 계정 지원: 로컬 시스템, 로컬 또는 도메인 계정, Active Directory 계정 또는 gMSA를 사용하여 서비스를 실행할 수 있습니다.
  • 로그 관리: stdout/stderr를 로그 파일로 리디렉션하고, 크기 기반 및 날짜 기반 자동 로테이션을 수행합니다.
  • 라이프사이클 훅: 서비스 시작 전/후, 중지 전/후에 훅을 실행하고, 재시도, 타임아웃, 로깅 및 실패 처리를 지원합니다.
  • 그레이스풀 종료: 명령줄 앱의 경우 Ctrl+C, GUI 앱의 경우 창 닫기, 응답 없음 시 강제 종료를 지원합니다.
  • 헬스 체크 및 자동 복구

    서비스의 자동 실패 감지, Windows 알림 또는 이메일을 통한 즉시 알림, 그리고 ping URL(예: healthchecks.io)을 지원합니다.

    설치·시작·기본 사용

    가장 간단한 설치 방법은 WinGet, Chocolatey, Scoop 또는 Patch My PC를 사용하는 것입니다. 레거시 OS(Windows 7 SP1 등)의 경우 GitHub Releases에서 직접 다운로드하여 설치할 수 있습니다.

    설치 예시 (CLI)

    강화된 PowerShell 프롬프트에서 다음 명령어를 실행하여 Node.js 앱을 윈도우 서비스로 설치할 수 있습니다.

    servy-cli install ` --name="MyService" ` --path="C:Program Filesnodejsnode.exe" ` --startupDir="C:MyServer" ` --params="server.js" ` --enableHealth

    이 명령은 Windows와 함께 자동으로 시작되고 건강 모니터링이 활성화된 ‘MyService’라는 서비스를 생성합니다.

    서비스 시작

    서비스를 시작하려면 다음 명령어를 사용합니다.

    servy-cli start --name="MyService"

    또는 강화된 명령 프롬프트에서 다음 명령어를 사용할 수도 있습니다.

    sc.exe start MyService

    PowerShell 모듈 사용 예시

    Install-ServyService -Name MyService -Path "C:Program Filesnodejsnode.exe" -StartupDir "C:MyServer" -Params "server.js" -EnableHealth

    활용 예시

    • 웹 서버 및 API: Node.js, Python, Go 또는 Java 서버를 자동으로 시작되고 실패 후 복구되는 윈도우 서비스로 실행합니다.
    • AI 모델 및 LLM: Ollama나 Stable Diffusion과 같은 로컬 LLM 또는 AI API를 24/7 작동하는 지속적인 서비스로 실행합니다.
    • 백그라운드 워커: 데이터 처리 스크립트, 메시지 큐 컨슈머(RabbitMQ/Kafka), 장시간 실행되는 워커를 백그라운드에서 활성 상태로 유지합니다.
    • CI/CD 및 DevOps: 자체 호스팅 빌드 에이전트(GitHub Actions, GitLab Runners 또는 Jenkins)가 충돌하거나 시스템이 재부팅될 때 자동으로 재시작되도록 유지합니다.
    • 자동화 및 스크립트: 로컬 파일 정리, 백업 또는 시스템 모니터링을 처리하기 위해 예약된 스크립트를 실행하거나 PowerShell 또는 Python 스크립트를 지속적인 데몬으로 실행합니다.
    • 데이터베이스 프록시: Cloud SQL Auth Proxy 또는 Ngrok과 같은 로컬 데이터베이스 터널 또는 프록시를 서비스로 관리하여 안정적인 연결을 제공합니다.
    • 원격 관리 에이전트: MeshCentral과 같은 모니터링 에이전트 또는 원격 관리 도구를 지속적인 백그라운드 서비스로 실행하여 중단 없는 관리 접근과 제어를 보장합니다.
    • 네트워크 유틸리티 및 프록시: 사용자 정의 DNS 서버, 리버스 프록시(Caddy 또는 Nginx) 또는 VPN 클라이언트를 백그라운드에서 원활하게 실행하여 지속적인 로컬 네트워크 가용성과 안정적인 라우팅을 보장합니다.
    • 레거시 앱 현대화: 서비스로 구축되지 않은 구형 CLI 도구 또는 옘솔 앱을 래핑하여 현대적인 라이프사이클 관리와 헬스 모니터링을 제공합니다.

    지원 환경·요구사항

    • 모던 빌드(기본, 셀프 컨테이너): Windows 10(1809+), Windows 11, Windows Server 2016+, x64 및 ARM64
    • 레거시 빌드(net48, .NET Framework 4.8 필요): Windows 7 SP1, 8.x 및 Windows Server 2008 R2+, x64 전용

    버전·업데이트

    Servy는 현재 버전 9.7을 제공하며, GitHub Releases 페이지에서 최신 릴리스를 다운로드할 수 있습니다. 주요 업데이트 내용은 다음과 같습니다.

    • 보안: 서비스 바이너리를 명시적 읽기 및 실행 권한으로 강화하는 Set-ServyExePermissions.ps1 스크립트 추가
    • 보안: 서비스 계정 문서 및 UI를 Set-ServyExePermissions.ps1 강화가 필요하도록 업데이트
    • 핵심: ResourceHelper.cs의 원자적 리소스 추출 과정에서 파일 ACL 보존
    • CLI: install 명령 옵션 시퀀스를 핵심 서비스 스키마와 일치하도록 조정
    • 테스트: 테스트 러너와 커버리지 수집을 VSTest에서 MTP로 마이그레이션

    제한·라이선스·확인사항

    • 라이선스: MIT 라이선스 하에 무료 오픈소스 소프트웨어입니다.
    • 지원: 프로젝트는 기부를 통해 지원할 수 있습니다(GitHub Sponsors, PayPal, Buy Me a Coffee).
    • 기여: 제안이나 이슈가 있으시면 GitHub에서 이슈를 열거나 풀 리퀘스트를 제출할 수 있습니다.

    FAQ

    • Q: Servy는 어떤 애플리케이션을 서비스로 만들 수 있나요?
      A: 어떤 Windows 애플리케이션이라도 실행 파일 경로를 지정하면 서비스로 등록할 수 있습니다.
    • Q: 실시간 모니터링은 어떤 정보를 제공하나요?
      A: CPU 및 메모리 사용량을 실시간 그래프로 보여주고, 표준 출력/오류 스트림을 라이브로 스트리밍합니다.
    • Q: Servy는 무료인가요?
      A: MIT 라이선스 하에 무료 오픈소스 소프트웨어이며, 기부를 통해 프로젝트를 지원할 수 있습니다.
    • Q: 어떤 방법으로 설치할 수 있나요?
      A: WinGet, Chocolatey, Scoop, Patch My PC, GitHub 등을 통해 설치할 수 있습니다.

    화면으로 보는 주요 기능

    Servy 설정 창

    Servy 설정 창

    Servy 애플리케이션의 설정 창이 표시되어 있으며, 'Main' 탭이 선택되어 있다. 창 상단에는 'Import', 'Export', 'Clear All' 버튼이 있고, 아래에는 'Service Name' 필드에 'WexflowServer', 'Service Description' 필드에 'Wexflow Workflow Automation Engine', 'Process Path' 필드에 'C:Program Filesdotnetdotnet.exe'가 입력되어 있다. 'Startup Directory' 필드에는 'C:Program FilesWexflow ServerWexflow.Server'가 입력되어 있고, 'Process Parameters' 필드는 비어 있다. 'Startup Type'은 'Auto'로 설정되어 있으며, 'Process Priority'는 'Normal'로 설정되어 있다. 'Stdout File Path'와 'Stderr File Path' 필드는 각각 'C:'과 'C:'으로 설정되어 있다. 'Rotation Size' 필드는 '10485760 bytes'로 설정되어 있고, 'Enable Health Monitoring' 체크박스는 선택되어 있다. 'Heartbeat Interval'은 '5 seconds', 'Max Failed Checks'는 '1', 'Recovery Action'은 'Restart Service (default)'로 설정되어 있다. 'Max Restart Attempts'는 '3'으로 설정되어 있다. 하단에는 'Install', 'Uninstall', 'Start', 'Stop', 'Restart' 버튼이 있다.

시스템 요구사항

최신 모던 빌드는 Windows 10(1809 이상), Windows 11, Windows Server 2016 이상에서 x64 및 ARM64 아키텍처를 지원합니다. 레거시 빌드는 .NET Framework 4.8가 필요하며 Windows 7 SP1, 8.x, Windows Server 2008 R2 이상(x64 전용)에서 실행됩니다.