Windows 서비스로 노마드 설치하기
Windows 서비스로 노마드 설치하기
노마드를 기본 Windows 서비스로 실행할 수 있어요. windows service install 명령을 사용해 노마드를 설치하고 Windows 서비스를 만들어요.
노마드 Windows 서비스를 수동으로 설정할 수도 있어요. sc.exe를 사용해 Windows 서비스 제어 관리자(Service Control Manager)에 노마드 애플리케이션을 등록하고, 노마드가 파일에 로그하도록 구성한 뒤, 노마드 서비스를 시작해요.
참고: 이 단계는 Administrator 권한이 있는 PowerShell 세션에서 실행해야 해요.
출처: 문서
본문
Windows에 노마드 등록
아키텍처에 맞는 노마드 바이너리를 다운로드해요.
sc.exe 명령으로 "Nomad"라는 이름의 서비스를 만들어요. binPath 인자에는 노마드 실행 파일에 대한 완전한 경로와 nomad 명령의 인자(agent, -config 등)가 포함되어야 해요.
sc.exe create "Nomad" binPath="«full path to nomad.exe» agent -config=«path to config file or directory»" start=auto
[SC] CreateService SUCCESS
성공 메시지를 받으면 서비스가 서비스 관리자에 등록된 거예요.
오류가 발생하면 바이너리 경로를 확인하고 인자를 점검하세요. binPath의 내용을 PowerShell 세션에서 직접 실행해 결과를 관찰해 보아요.
노마드가 파일에 로그하도록 구성
Windows 서비스는 비대화식으로 실행되고 노마드는 Windows 이벤트 뷰어(Event Viewer)에 로그하지 않으므로, 노마드에서 파일 기반 로깅을 구성해야 해요.
이렇게 하려면 노마드 구성 파일에서 log_file 인자를 설정하거나, 서비스 등록에 사용한 sc.exe 명령의 binPath 인자에 설정해요.
노마드 서비스 시작
서비스를 시작하는 방법은 두 가지예요.
- Windows 서비스 관리자로 가서 서비스 이름 열에서 Nomad를 찾아요. Start 버튼을 클릭해 서비스를 시작해요.
sc.exe명령 사용:
sc.exe start "Nomad"
SERVICE_NAME: Nomad
TYPE : 10 WIN32_OWN_PROCESS
STATE : 4 RUNNING
(STOPPABLE, NOT_PAUSABLE, ACCEPTS_SHUTDOWN)
WIN32_EXIT_CODE : 0 (0x0)
SERVICE_EXIT_CODE : 0 (0x0)
CHECKPOINT : 0x0
WAIT_HINT : 0x0
PID : 8008
FLAGS :
서비스는 부팅 중/후에 자동으로 시작되므로, 명령줄에서 다시 노마드를 시작할 필요가 없어요.
비대화식 데스크톱 힙 크기 늘리기
노마드를 Windows 서비스로 실행하면서 50개가 넘는 많은 할당(allocation)을 실행하려 한다면, 로그에 exit status 0xc0000142 같은 오류로 Windows가 노마드 플러그인 프로세스를 종료하는 문제가 발생할 수 있어요. 이는 노마드가 더 많은 동시 프로세스를 생성하지 못하기 때문이에요. 이 문제는 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\SubSystems Windows 레지스트리 키의 값을 조작해 해결할 수 있어요.
이 키에는 Windows 값이 있고, 그 안에 SharedSection 파라미터가 있으며, 이 파라미터는 쉼표로 구분된 세 개의 정수(예: 1024,20480,768)를 받아요. 첫 번째 정수는 시스템 전체 힙의 최대 크기, 두 번째는 각 데스크톱 힙의 크기, 세 번째는 비대화식 Windows 인스턴스와 연결된 데스크톱 힙의 크기를 나타내요. 모든 값은 킬로바이트 단위예요. 많은 수의 할당을 실행하는 대형 Windows 노드에서는 마지막 정수 값을 2048 또는 4096 kB로 설정할 것을 권장해요. 레지스트리 변경은 Windows를 다시 시작해야 적용된다는 점을 기억하세요. 노마드 서비스만 재시작해서는 충분하지 않아요.