콘텐츠로 이동

NT 서비스에 대하여

개요

단말 모니터 앞 자리를 ‘콘솔’이라고 부릅니다. 서버 애플리케이션이라면 콘솔을 마주하면서 아이디와 비밀 번호를 넣어 직접 로그인하지 않아도 서버가 시작하자마자, 또는 약속된 스케줄에 따라 서버 애플리케이션을 자동으로 서버 프로그램을 실행합니다. 그러면 네트워크로부터 요청을 받아 적절한 내용을 응답해주는 기능을 제공하게 됩니다.

유닉스 계통 시스템의 경우 이런 유형의 애플리케이션을 데몬 (Daemon)이라고 부르며, 윈도우 시스템에서는 NT 서비스라고 부릅니다. NT 서비스는 서비스 제어 관리자 (이하 SCM)를 통해 시작/종료가 관리되는 애플리케이션입니다.

NT 서비스가 리눅스 데몬/콘솔 프로그램과 다른 점

  • 다음의 특징 때문에 NT 서비스 애플리케이션은 컨테이너화 난이도가 높습니다. 아래 요소들은 일반적인 콘솔 프로그램에서는 하나로 통합되어있습니다.
  • 생명 주기 차이: NT 서비스의 시작과 종료는 EXE 파일이 기준이 아니라 SCM에 의해서 정해집니다.
  • 입출력 방식 차이: NT 서비스는 표준 입력, 표준 출력, 표준 오류 출력 스트림이 없습니다.
  • 로그 기록 방식 차이: 로그 기록은 Windows 이벤트 로그, Windows용 이벤트 추적 (ETW) 또는 파일 로그를 주로 사용합니다.
  • NT 서비스 형태로 실행되는 프로그램에는 사용자 인터페이스가 따로 없습니다. 1
  • NT 서비스 프로그램의 실행 방법은 둘로 나뉩니다.
  • SCM으로부터 들어오는 메시지를 직접 처리하는 외부 EXE 실행 파일로 실행하는 경우: 가장 보편적으로 널리 사용하는 실행 방식입니다.
  • svchost.exe 에 DLL을 불러와서 실행하는 경우: NT 서비스 시작 시간, 메모리 효율성 등을 고려하여 Windows OS의 서비스 호스트 프로세스의 일부로 편입시켜 실행하는 방식입구체적ㅇ니다.

참고 자료



  1. 별도의 제어용 프로그램이나 관리자임을 인증한 후에 접속할 수 있는 관리용 웹 페이지를 통해 NT 서비스의 상태를 모니터링하거나 서비스의 설정 변경 및 동작 제어를 할 수 있도록 기능을 제공하게 됩니다.