맨위로가기

윈도우 서비스

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

윈도우 서비스는 윈도우 운영체제에서 백그라운드로 실행되는 프로그램으로, 서비스 관리 콘솔, sc.exe 명령줄 도구, 윈도우 파워셸 등을 통해 관리할 수 있다. 서비스 스냅인을 통해 시작, 중지, 시작 유형 변경 등의 작업을 수행할 수 있으며, sc.exe는 서비스를 설치, 제거하고 다양한 하위 명령어를 제공한다. 윈도우 파워셸은 서비스 관리를 위한 cmdlet을 제공하며, net 명령어, 작업 관리자, MSConfig 등도 서비스 관리에 사용된다. 윈도우 서비스는 SetupAPI를 통해 설치 및 제거되며, 서비스 제어 관리자(SCM)를 통해 시작, 중지, 일시 중지 메시지를 처리하도록 개발된다.

더 읽어볼만한 페이지

  • 프로세스 - 문맥 교환
    문맥 교환은 운영 체제에서 CPU가 여러 프로세스나 스레드를 번갈아 실행하기 위해 현재 작업 상태를 저장하고 다른 작업 상태를 복원하는 과정으로, 멀티태스킹 환경에서 필수적인 기술이며 프로세스 제어 블록을 통해 관리된다.
  • 프로세스 - 데몬 (컴퓨팅)
    데몬은 운영 체제에서 사용자와 상호 작용 없이 백그라운드에서 실행되며 시스템의 다양한 작업을 처리하는 프로세스이다.
  • 윈도우 구성 요소 - 인터넷 익스플로러
    마이크로소프트가 개발한 웹 브라우저인 인터넷 익스플로러는 윈도우 운영 체제와의 통합으로 높은 시장 점유율을 유지했으나, 웹 표준 문제와 보안 취약점으로 비판받으며 2015년 엣지에 자리를 내주고 2022년 지원이 종료되었지만, 엣지의 IE 모드로 레거시 호환성을 유지하고 있다.
  • 윈도우 구성 요소 - 원격 데스크톱 서비스
    원격 데스크톱 서비스(RDS)는 네트워크를 통해 원격으로 컴퓨터의 데스크톱 환경에 접근할 수 있게 해주는 기술이며, 클라이언트 소프트웨어, 서버 구성 요소, 다양한 역할을 수행하는 구성 요소로 구성된다.
윈도우 서비스
일반 정보
종류마이크로소프트 윈도우의 구성 요소
설명운영체제 서비스를 관리하는 구성 요소
기술 정보
기능백그라운드 프로세스 실행
시스템 수준 권한으로 실행
사용자 상호 작용 없이 실행
세션 0 격리윈도우 비스타부터 적용, 상호 작용 서비스의 기능 저하
활용
예시파일 공유
인쇄 서비스
네트워크 서비스
관리 도구서비스 관리자 (services.msc)

2. 서비스 관리

윈도우 서비스는 다음과 같은 방법으로 관리할 수 있다.


  • 서비스 스냅인: 윈도우 제어판의 관리 도구에서 서비스 스냅인(services.msc)을 실행하여 서비스를 관리할 수 있다. 서비스 스냅인에서는 서비스 시작, 중지, 일시 중지, 재시작, 시작 유형 변경, 복구 설정, 서비스 목록 내보내기 등의 작업을 할 수 있다.
  • sc.exe: 명령줄 도구인 sc.exe를 사용하여 윈도우 서비스를 관리할 수 있다. sc.exe는 윈도우 NT 계열 운영체제, 윈도우 XP 이상 및 ReactOS에서 사용할 수 있다.[7][8][9] sc.exe는 서비스 스냅인에서 제공하는 대부분의 기능 외에도 서비스 설치 및 제거 기능을 제공한다.[9]
  • 윈도우 파워셸: 윈도우 파워셸 cmdlet을 사용하여 서비스를 관리할 수 있다. `Get-Service`, `New-Service`, `Restart-Service` 등의 cmdlet이 제공된다.[26]
  • 기타: `net` 명령어를 사용하여 서비스를 시작, 중지, 일시 중지 또는 다시 시작할 수 있다.[21] 윈도우 비스타 이상에서는 작업 관리자를 통해 서비스를 시작하거나 중지할 수 있으며, MSConfig를 사용하여 서비스를 활성화하거나 비활성화할 수 있다.

2. 1. 서비스 스냅인

윈도우 제어판의 관리 도구에 포함된 서비스 스냅인(services.msc)을 통해 서비스를 관리할 수 있다.[4] 서비스 스냅인은 다음과 같은 기능을 제공한다.

  • 설치된 서비스 목록, 서비스 이름, 설명 및 구성을 볼 수 있다.
  • 서비스를 시작, 중지, 일시 중지 또는 다시 시작할 수 있다.[5]
  • 서비스 매개변수를 지정할 수 있다.
  • 시작 유형을 변경할 수 있다. 시작 유형에는 ''자동'', ''자동(지연)'', ''수동'', ''사용 안 함''이 있다.
  • * ''자동'': 시스템 시작 시 서비스를 시작한다.
  • * ''자동(지연)'': 시스템 시작이 완료된 직후 서비스를 시작한다. 윈도우 비스타에서 부팅 후 데스크톱까지의 시간을 줄이기 위해 도입되었으나, 모든 서비스가 지연된 시작을 지원하는 것은 아니다.[6]
  • * ''수동'': 명시적으로 호출될 때만 서비스를 시작한다.
  • * ''사용 안 함'': 서비스를 비활성화하고 실행되지 않도록 한다.
  • 서비스가 작동하는 사용자 계정 컨텍스트를 변경할 수 있다.
  • 서비스 실패 시 수행할 복구 작업을 구성할 수 있다.
  • 서비스 종속성을 검사할 수 있다.
  • 서비스 목록을 텍스트 파일 또는 CSV 파일로 내보낼 수 있다.


윈도우 XP 서비스 팩 3, 윈도우 비스타, 윈도우 7 이상에서는 MSConfig를 통해서도 서비스 관리가 가능하다. 윈도우 비스타, 윈도우 7 이상에서는 윈도우 작업 관리자의 서비스 탭에서 서비스를 시작하거나 중지할 수 있다.

2. 2. sc.exe

sc.exe는 윈도우 서비스를 관리하기 위한 명령줄 도구이다. 윈도우 NT 계열 운영체제에서 사용할 수 있으며, 윈도우 XP[8] 이상[9]ReactOS에도 포함되어 있다.[7] sc.exe를 통해 서비스 스냅인에서 제공하는 대부분의 기능을 사용할 수 있고, 서비스 설치 및 제거도 가능하다.[9] `sc` 명령어는 `net` 명령어의 일부 기능과 중복된다.[10] ReactOS 버전은 Ged Murphy가 개발했으며 GPL 라이선스로 배포된다.[11]

2. 2. 1. sc 하위 명령어

sc.exe는 윈도우 서비스를 제어하는 다양한 하위 명령어를 제공한다.[9]

sc 하위 명령어
이름설명윈도우 지원ReactOS 지원
query서비스 상태 표시
queryex확장된 서비스 정보 (pid, 플래그 등) 표시
start서비스 시작
pause서비스 일시 중지
interrogate서비스에 INTERROGATE 제어 요청 전송
continue서비스 재개
stop서비스 중지
config서비스 구성을 영구적으로 변경
description서비스 설명 변경
failure오류 발생 시 서비스에서 수행할 작업 변경
failureflag서비스 실패 플래그 설정아니요
sidtype서비스 SID 유형 설정아니요
privs서비스 권한 설정아니요
managedaccount서비스가 관리 계정인지 여부 설정아니요
qc서비스 구성 (종속성, 전체 경로 등) 표시
qdescription서비스 설명 쿼리
qfailure서비스 실패 작업 쿼리아니요
qfailureflag서비스 실패 플래그 쿼리아니요
qsidtype서비스 SID 유형 쿼리아니요
qprivs서비스 권한 쿼리아니요
qtriggerinfo서비스 트리거 정보 쿼리아니요
qpreferrednode서비스 선호 노드 쿼리아니요
qmanagedaccount서비스가 관리 계정인지 여부 쿼리아니요
qprotection서비스 보호 수준 쿼리아니요
quserservice사용자 서비스 쿼리아니요
delete서비스 삭제
create서비스 생성
control서비스에 제어 전송
sdshowSDDL을 사용하여 서비스의 보안 설명자 표시
sdsetSDDL을 사용하여 서비스의 보안 설명자 설정
showsid서비스 SID 표시아니요
triggerinfo서비스 트리거 정보 설정아니요
preferrednode서비스 선호 노드 설정아니요
GetDisplayName서비스 표시 이름(DisplayName) 표시
GetKeyName서비스 키 이름(ServiceKeyName) 표시
EnumDepend서비스 종속성 표시
boot(사용되지 않음)아니요
Lock(사용되지 않음)아니요
QueryLock(사용되지 않음)아니요


2. 2. 2. 예제

활성 서비스 및 드라이버의 상태를 열거하려면 다음과 같이 명령어를 입력한다.[12]



C:\>sc query



Windows 이벤트 로그 서비스의 상태를 표시하려면 다음과 같이 명령어를 입력한다.[12]



C:\>sc query eventlog


2. 3. 윈도우 파워셸

윈도우 파워셸은 다음 cmdlet을 사용하여 윈도우 서비스를 관리할 수 있다.[26]

2. 4. 기타 관리 도구

`net` 명령어를 사용하여 윈도우 서비스를 시작, 중지, 일시 중지 또는 다시 시작할 수 있다.[21] 윈도우 비스타 이상에서는 작업 관리자를 사용하여 설치된 서비스 목록을 보고 시작하거나 중지할 수 있다. MSConfig를 사용하여 윈도우 서비스를 활성화하거나 비활성화할 수도 있다.

Windows 서비스를 관리하는 명령 줄 도구에는 sc.exe가 있다. 이 도구는 모든 버전의 Windows NT에서 사용할 수 있다.[7] 이 유틸리티는 윈도우 XP[8] 이상[9]ReactOS에도 포함되어 있다.

`sc` 명령은 `net` 명령의 일부 기능을 복제한다.[10]

sc 하위 명령어
이름설명윈도우 지원ReactOS 지원
query서비스 상태 표시
queryex확장된 서비스 정보 표시 (예: pid, 플래그)
start서비스 시작
pause서비스 일시 중지
interrogate서비스에 INTERROGATE 제어 요청 전송
continue서비스 재개
stop서비스 중지
config서비스 구성을 영구적으로 변경
description서비스 설명 변경
failure오류 발생 시 서비스에서 수행할 작업 변경
failureflag아니요
sidtype아니요
privs아니요
managedaccount아니요
qc서비스 구성 표시 (예: 종속성, 전체 경로 등)
qdescription서비스 설명 쿼리
qfailure아니요
qfailureflag아니요
qsidtype아니요
qprivs아니요
qtriggerinfo아니요
qpreferrednode아니요
qmanagedaccount아니요
qprotection아니요
quserservice아니요
delete서비스 삭제
create서비스 생성
control서비스에 제어 전송
sdshowSDDL을 사용하여 서비스의 보안 설명자를 표시
sdsetSDDL을 사용하여 서비스의 보안 설명자 설정
showsid아니요
triggerinfo아니요
preferrednode아니요
GetDisplayName서비스 DisplayName 표시
GetKeyName서비스 ServiceKeyName 표시
EnumDepend서비스 종속성 표시
boot아니요
Lock아니요
QueryLock아니요


3. 서비스 설치

윈도우 서비스는 SetupAPI를 통해 *.INF 설치 스크립트를 사용하여 설치 및 제거된다. 설치된 서비스는 설치 직후 즉시 시작할 수 있으며, 실행 중인 서비스는 제거 전에 중지할 수 있다.[22][23][24]

4. 서비스 개발

프로그램이 윈도우 서비스로 실행되려면 서비스 제어 관리자(SCM)로부터 https://docs.microsoft.com/en-us/windows/win32/system-services 시스템 서비스 API를 통해 서비스 시작, 중지, 일시 중지 메시지를 처리하도록 작성되어야 한다. SCM은 서비스 프로세스를 관리하는 윈도우 구성 요소이다. 윈도우 측 인터페이스는 서비스 컨트롤 관리자라고 불리며, 서비스 시작/정지를 관리한다. 몇몇 API 호출을 통해 서비스 이름과 속성이 서비스 컨트롤 관리자에 등록된다. 일반적으로 윈도우 서비스에는 사용자 인터페이스가 존재하지 않지만, 사용자 인터페이스를 갖는 것은 가능하다. 이를 사용하는 경우 해당 서비스의 속성에서 "로그온" 탭 화면의 "데스크톱과의 상호 작용을 서비스에 허용"을 체크해야 한다.[25]

4. 1. 네이티브 서비스 작성

프로그램이 윈도우 서비스로 실행되려면, 서비스 제어 관리자(SCM)로부터 https://docs.microsoft.com/en-us/windows/win32/system-services 시스템 서비스 API를 통해 서비스 시작, 중지 및 일시 중지 메시지를 처리하도록 작성되어야 한다. SCM은 서비스 프로세스를 관리하는 윈도우 구성 요소이다.

Windows 측의 인터페이스는 서비스 컨트롤 관리자라고 불리며, 서비스의 시작/정지를 관리한다. 그리고 몇몇 API 호출을 통해 서비스 이름과 속성이 서비스 컨트롤 관리자 내에 등록된다. 일반적으로 Windows 서비스에는 사용자 인터페이스가 존재하지 않지만, 사용자 인터페이스를 갖는 것은 가능하며, 이를 사용하는 경우 해당 서비스의 속성에서 "로그온" 탭 화면의 "데스크톱과의 상호 작용을 서비스에 허용"을 체크해야 한다.

4. 2. 응용 프로그램을 서비스로 래핑

윈도우 리소스 키트는 윈도우 NT 3.51, 윈도우 NT 4.0, 윈도우 2000에서 서비스의 사용 및 등록을 제어하는 도구를 제공한다. `SrvAny.exe`는 서비스 인터페이스를 처리하는 서비스 래퍼 역할을 수행하여 (예: service_start를 처리하고 나중에 service_started 또는 service_failed로 응답) 모든 실행 파일 또는 스크립트를 서비스로 구성할 수 있도록 한다. `Sc.exe`는 새로운 서비스를 설치, 시작, 중지, 제거할 수 있도록 한다.[25]

참조

[1] 웹사이트 Services http://msdn2.microso[...] Microsoft 2013-03-29
[2] 웹사이트 New Elevation PowerToys for Windows Vista https://technet.micr[...] Microsoft 2008-06
[3] 웹사이트 Services in Windows http://msdn.microsof[...] Microsoft 2010-10-18
[4] 웹사이트 Services overview https://technet.micr[...] Microsoft 2013-03-29
[5] 웹사이트 Start, stop, pause, resume, or restart a service https://technet.micr[...] Microsoft 2013-03-29
[6] 웹사이트 ServiceInstaller.DelayedAutoStart Property (System.ServiceProcess) http://msdn.microsof[...] Microsoft 2017-11-28
[7] 웹사이트 How to create a Windows service by using Sc.exe http://support.micro[...] Microsoft 2011-09-11
[8] 웹사이트 Command-line reference A-Z: SC https://technet.micr[...] Microsoft 2014-01-08
[9] 웹사이트 Command-Line Reference: Sc https://technet.micr[...] Microsoft 2014-01-08
[10] 웹사이트 SC - Service Control - Windows CMD - SS64.com https://ss64.com/nt/[...]
[11] 웹사이트 reactos/sc.c at master · reactos/reactos · GitHub https://github.com/r[...]
[12] 웹사이트 MS-DOS and Windows command line sc command https://www.computer[...]
[13] 웹사이트 Get-Service https://technet.micr[...] Microsoft 2013-03-29
[14] 웹사이트 New-Service https://technet.micr[...] Microsoft 2013-03-29
[15] 웹사이트 Restart-Service https://technet.micr[...] Microsoft 2013-03-29
[16] 웹사이트 Resume-Service https://technet.micr[...] Microsoft 2013-03-29
[17] 웹사이트 Set-Service https://technet.micr[...] Microsoft 2013-03-29
[18] 웹사이트 Start-Service https://technet.micr[...] Microsoft 2013-03-29
[19] 웹사이트 Stop-Service https://technet.micr[...] Microsoft 2013-03-29
[20] 웹사이트 Suspend-Service https://technet.micr[...] Microsoft 2013-03-29
[21] 웹사이트 Start, stop, pause, resume, or restart a service https://technet.micr[...] Microsoft 2014-01-08
[22] 웹사이트 INF AddService Directive https://docs.microso[...] Microsoft 2017-07-10
[23] 웹사이트 SetupInstallServicesFromInfSection function https://msdn.microso[...] Microsoft 2017-07-10
[24] 웹사이트 SetupInstallServicesFromInfSectionEx function https://msdn.microso[...] Microsoft 2017-07-10
[25] 웹사이트 How To Create a User-Defined Service http://support.micro[...] Microsoft 2013-03-29
[26] 웹인용 Get-Service http://technet.micro[...] Microsoft 2013-03-29
[27] 웹인용 New-Service http://technet.micro[...] Microsoft 2013-03-29
[28] 웹인용 Restart-Service http://technet.micro[...] Microsoft 2013-03-29
[29] 웹인용 Resume-Service http://technet.micro[...] Microsoft 2013-03-29
[30] 웹인용 Set-Service http://technet.micro[...] Microsoft 2013-03-29
[31] 웹인용 Start-Service http://technet.micro[...] Microsoft 2013-03-29
[32] 웹인용 Stop-Service http://technet.micro[...] Microsoft 2013-03-29
[33] 웹인용 Suspend-Service http://technet.micro[...] Microsoft 2013-03-29



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com