svchost 란 무엇이며 여러 인스턴스가 실행되는 이유는 무엇입니까?


27

내 데스크탑에는 6 개의 인스턴스가 있으며, 내가 관리하는 서버에는 10 개의 인스턴스가 있습니다. 이것이 무엇이며 시스템 기능에 필수적입니까?


LOL. 내 노트북에서 91 개가 실행 중입니다!
Sen Jacob

답변:


16

svchost, Windows에서 서비스 호스팅 KB 참조 . 프로세스 탐색기 를 사용 하면 특정 프로세스 내에서 실행중인 서비스를 확인할 수 있습니다.


1
그렇다면 이것은 리눅스에서 inetd와 다소 비슷합니까? 개발자가 코드의 서버 부분에 대해 걱정하지 않고 서비스를 작성할 수 있도록하는 범용 서버 프레임 워크?
Jason Tan

같은 종류의 아이디어 Jason, 그러나 일반적으로 webbish 유형 작업 만 올리는 inetd보다 더 넓은 범위가 있습니까? 그래도 좋은 비유는 분명 현금을 위해 충분히 가까이 ...
Rob Moir

20

Windows의 많은 실행 구성 요소는 서비스로 구현됩니다 (시스템 열기의 모든 서비스 참조 Control Panel > Administrative Tools > Services). 이들은 백그라운드에서 실행되는 특수 프로그램입니다. 로그인 한 사용자가 아니라 운영 체제 자체에서 시작합니다.

대부분의 서비스는 독립형 실행 파일 (EXE 파일)이 아니지만 라이브러리 (DLL)로 구현되며 프로세스를 실행하여 사용할 수 있습니다. 이름에서 알 수 있듯이 Svchost 또는 "Service Host"는 이러한 DLL을 실행하기위한 Windows 표준 실행 파일입니다. %systemroot%\system32디렉토리 에서 svchost.exe 파일을 찾을 수 있습니다 .

어떤 서비스를 실행중인 svchost 인스턴스를 알고 싶다면 다음을 입력하십시오.

 tasklist /svc /fi "IMAGENAME eq svchost.exe"

명령 행 콘솔 (cmd)에서.

스크린 샷을 만든 컴퓨터에서 svchost 인스턴스 중 하나가 예를 들어 21 개의 서로 다른 서비스를 실행 중입니다. Microsoft의 문서 에 따르면이 서비스 그룹을 통해 제어 기능을 향상시키고 디버깅을 쉽게 할 수 있습니다 .

대체 텍스트

Svchost.exe 그룹은 다음 레지스트리 키에서 식별됩니다.

HKEY_LOCAL_MACHINE\Software\Microsoft\WindowsNT\CurrentVersion\Svchost

팁 (Windows Vista, Windows 7 또는 Windows Server 2008을 실행하는 경우) : 작업 관리자를 열고 특정 svchost.exe 프로세스를 마우스 오른쪽 단추로 클릭 한 다음 "서비스로 이동"옵션을 선택할 수 있습니다. 선택한 프로세스 에서 실행중인 모든 서비스 가 표시되는 서비스svchost.exe이 표시됩니다.

Microsoft 다운로드 센터에는 매우 흥미로운 문서가 있습니다.

Microsoft Windows Server 2003 시스템 서비스 참조

이 문서에는 Windows Server 2003 제품군 운영 체제에서 사용할 수있는 모든 서비스가 요약되어 있습니다. 서비스는 표시 이름별로 알파벳순으로 나열됩니다. 각 서비스에 대한 설명에 따라 서비스에 대한 주요 정보가 표에 나열됩니다.

모든 Windows 서비스는 모든 세부 정보와 함께 나열됩니다. 예를 들어, 터미널 서비스 서비스의 실행 파일 이름은

 svchost.exe -k termsvcs 

정보 .... 당신과 당신의 8000 포인트 담당자에게 감사드립니다. 나는 Win CLI에 정통한 것으로 생각하지만 이것을 잘 몰랐습니다. 감사!
cop1152 2016 년

7

Svchost는 "Service Host"의 줄임말입니다. 컴퓨터의 대부분의 서비스를 계속 실행합니다. 자체 .exe 파일로 자체 호스팅하는 몇 가지 서비스가 있지만 대부분의 Windows 서비스는 svchost.exe 프로세스 내에서 호스팅해야합니다. 컴퓨터의 서비스는 네트워킹, RpC 서버, 오디오, 이벤트 로그 등과 같은 중요한 것들을 처리합니다.

컴퓨터에서 실행중인 서비스를 보려면 시작-> 실행에 "services.msc"를 입력하십시오. 필요없는 사람이라고 생각되면 서비스를 중지 할 수 있습니다.

다른 svchost.exe 파일이 어떤 서비스를 호스팅하는지 확인하려면 "tasklist / SVC"를 입력하십시오.


1

다음은 svchost.exe 프로세스에서 호스팅되는 모든 서비스를 출력하는 PowerShell one-liner입니다.

PS>get-process svchost | % {get-wmiobject win32_service -filter "processid=$($_.id)"} | format-table processid,name,displayname,state,status -auto

processid name          displayname                               state   status
--------- ----          -----------                               -----   ------
      316 HTTPFilter    HTTP SSL                                  Running OK
     1328 DcomLaunch    DCOM Server Process Launcher              Running OK
     1328 TermService   Terminal Services                         Running OK
     1392 RpcSs         Remote Procedure Call (RPC)               Running OK
     1528 AudioSrv      Windows Audio                             Running OK
     1528 BITS          Background Intelligent Transfer Service   Running OK
     1528 Browser       Computer Browser                          Running OK

단일 라이너의 짧은 버전은 다음과 같습니다.

gps svchost | % {gwmi win32_service -f "processid=$($_.id)"} | ft proc*,name,disp*,stat* -auto

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.