Svchost.exe는 다양한 시스템 기능을 수행하는 Windows 서비스들을 호스팅하는 프로세스입니다. 컴퓨터에서는 여러 개의 svchost.exe 인스턴스가 동시에 실행될 수 있으며, 각 인스턴스는 서로 다른 서비스를 포함하고 있습니다. 이전에 svchost.exe가 CPU 사용률을 과도하게 높일 때 대처하는 방법에 대한 글을 소개한 적이 있습니다.
이번 글에서는 svchost.exe 내부에서 실제로 실행 중인 프로세스나 서비스를 확인하는 몇 가지 방법을 알려드리겠습니다. 대부분의 Windows PC에서는 10~20개 정도의 svchost.exe 프로세스가 실행되고 있는 것을 볼 수 있습니다. 문제가 발생했을 때 특정 svchost.exe 프로세스가 원인이라면, 해당 프로세스 내에서 어떤 서비스가 실행되고 있는지 파악하는 것만으로도 쉽게 해결할 수 있습니다.
작업 관리자(Task Manager) 활용하기
Windows 10을 사용 중이라면 작업 관리자만으로 충분합니다. 시작 메뉴에서 '작업 관리자'를 검색하거나, 키보드에서 CTRL + SHIFT + ESC 키를 길게 눌러 작업 관리자를 실행하세요. 현재 실행 중인 프로그램 목록만 담긴 작은 창이 나타난다면, 하단의 자세히 버튼을 클릭해야 합니다.
그다음 프로세스 탭을 클릭하고 앱과 백그라운드 프로세스 영역을 지나 Windows 프로세스 섹션까지 스크롤을 내리세요. 계속 아래로 내리다 보면 서비스 호스트:로 시작하는 항목들이 여러 개 보일 것입니다.

보시는 것처럼 각 서비스 호스트 항목에는 세미콜론 뒤에 서비스 이름이 표시됩니다. 덕분에 어떤 서비스가 어떤 svchost.exe 프로세스와 연결되어 있는지 한눈에 파악할 수 있습니다. 정확한 프로세스 ID를 확인하려면 해당 항목을 마우스 오른쪽 버튼으로 클릭한 후 세부 정보로 이동을 선택하세요.

그러면 자동으로 세부 정보 탭으로 전환되며, 해당 프로세스와 일치하는 항목이 선택됩니다.

이제 DHCP 클라이언트 서비스가 프로세스 ID 1504번의 svchost.exe 내에서 실행되고 있다는 것을 확인할 수 있습니다. 이 방법이 가장 간단하지만 Windows 10 이상에서만 사용할 수 있습니다. Windows 7 또는 그 이전 버전을 사용 중이라면 아래의 다른 방법들을 참고하세요.
Tasklist 명령어 활용하기
어떤 버전의 Windows에서든 명령 프롬프트를 사용하여 실행 중인 모든 svchost.exe 프로세스와 각 프로세스 내부의 서비스 목록을 생성할 수 있습니다. 시작 메뉴에서 cmd를 입력해 명령 프롬프트를 열어주세요.
명령 프롬프트에 다음 명령어를 복사하여 붙여넣습니다.
tasklist /svc | find "svchost.exe"
이 명령은 실행 중인 모든 프로세스 목록을 생성한 뒤, find 명령으로 전달하여 svchost.exe 프로세스만 필터링해 보여줍니다. 결과를 텍스트 파일로 저장하려면 다음 명령어를 사용하세요.
tasklist /svc | find "svchost.exe" > c:\tasklist.txt
C 드라이브 루트에 파일을 저장하려면 관리자 권한 명령 프롬프트를 실행해야 합니다(시작 메뉴에서 cmd 입력 후, 명령 프롬프트를 마우스 오른쪽 버튼으로 클릭하고 관리자 권한으로 실행 선택). 번거롭다면 저장 경로를 C:\Users\사용자이름\Documents처럼 다른 위치로 변경해도 됩니다.

Process Explorer 활용하기
마지막으로, Microsoft에서 제공하는 무료 도구인 Process Explorer를 사용할 수도 있습니다. 다운로드 후 압축을 해제하고 EXE 파일을 실행하기만 하면 됩니다. 별도의 설치 과정이 없어 매우 편리합니다.

Process 열의 제목을 클릭해 프로세스 목록을 정렬한 후, 아래로 스크롤하여 svchost.exe 항목을 찾으세요. 마우스를 프로세스 위에 올려두면 해당 프로세스와 연관된 서비스 정보가 툴팁으로 표시됩니다.
이상으로 svchost.exe 프로세스와 각 프로세스 내부에서 실행 중인 서비스를 확인하는 몇 가지 간단한 방법을 소개했습니다. 도움이 되길 바랍니다!