서비스 호스트 프로세스 (svchost.exe)는 무엇이며 그렇게 많이 실행되는 이유는 무엇입니까?

작업 관리자를 통해 탐색 한 적이 있다면 왜 그렇게 많은 서비스 호스트 프로세스가 실행되고 있는지 궁금 할 것입니다. 당신은 그들을 죽일 수없고 당신은 그들을 시작하지 않았을 것입니다. 그래서 그들은 무엇입니까?

서비스 호스트 프로세스는 DLL 파일에서 서비스를로드하기위한 셸 역할을합니다. 서비스는 관련 그룹으로 구성되며 각 그룹은 서비스 호스트 프로세스의 다른 인스턴스 내에서 실행됩니다. 이렇게하면 한 인스턴스의 문제가 다른 인스턴스에 영향을주지 않습니다. 이 프로세스는 실행을 막을 수없는 Windows의 중요한 부분입니다. 

이 기사는 dwm.exe, ctfmon.exe, mDNSResponder.exe, conhost.exe, rundll32.exe, Adobe_Updater.exe 등 작업 관리자에있는 다양한 프로세스를 설명하는 지속적인 시리즈의 일부입니다. 그 서비스가 무엇인지 모르십니까? 더 나은 읽기 시작!

그렇다면 서비스 호스트 프로세스는 무엇입니까?

Microsoft에 따르면 답은 다음과 같습니다.

Svchost.exe는 동적 연결 라이브러리에서 실행되는 서비스의 일반 호스트 프로세스 이름입니다.

그러나 그것은 우리에게별로 도움이되지 않습니다. 얼마 전 Microsoft는 내부 Windows 서비스 (EXE 파일에서 실행)에 의존하는 대신 DLL 파일을 사용하는 것으로 Windows 기능의 대부분을 변경하기 시작했습니다. 프로그래밍 관점에서 보면 코드를 더 재사용하고 최신 상태로 유지하기가 더 쉽습니다. 문제는 실행 파일과 같은 방식으로 Windows에서 DLL 파일을 직접 시작할 수 없다는 것입니다. 대신 실행 파일에서로드 된 셸이 이러한 DLL 서비스를 호스팅하는 데 사용됩니다. 그래서 서비스 호스트 프로세스 (svchost.exe)가 탄생했습니다.

왜 그렇게 많은 서비스 호스트 프로세스가 실행되고 있습니까?

관련 : 이 프로세스는 무엇이며 내 PC에서 실행되는 이유는 무엇입니까?

제어판의 서비스 섹션을 살펴보면 Windows에 많은 서비스가 필요하다는 사실을 알 수 있습니다. 모든 단일 서비스가 하나의 서비스 호스트 프로세스에서 실행되는 경우 하나의 서비스에서 오류가 발생하면 잠재적으로 모든 Windows가 다운 될 수 있습니다. 대신 분리되어 있습니다.

서비스는 모두 다소 관련이있는 논리 그룹으로 구성되며 각 그룹을 호스팅하기 위해 단일 서비스 호스트 인스턴스가 생성됩니다. 예를 들어 하나의 서비스 호스트 프로세스는 방화벽과 관련된 세 가지 서비스를 실행합니다. 다른 서비스 호스트 프로세스는 사용자 인터페이스와 관련된 모든 서비스를 실행할 수 있습니다. 예를 들어 아래 이미지에서 하나의 서비스 호스트 프로세스는 여러 관련 네트워크 서비스를 실행하고 다른 하나는 원격 프로 시저 호출과 관련된 서비스를 실행하는 것을 볼 수 있습니다.

이 모든 정보로 내가 할 일이 있습니까?

관련 : PC 속도를 높이려면 Windows 서비스를 비활성화해야합니까?

솔직히 많지는 않습니다. Windows XP (및 이전 버전) 시대에는 PC의 리소스가 훨씬 제한적이고 운영 체제가 미세 조정되지 않았을 때 Windows에서 불필요한 서비스를 실행하지 못하도록하는 것이 종종 권장되었습니다. 요즘에는 더 이상 서비스를 비활성화하지 않는 것이 좋습니다. 최신 PC에는 메모리와 고성능 프로세서가로드되는 경향이 있습니다. Windows 서비스가 최신 버전에서 처리되는 방식 (및 실행되는 서비스)이 간소화되었으며 실제로 필요하지 않다고 생각하는 서비스를 제거해도 더 이상 큰 영향을 미치지 않는다는 사실에 추가하십시오.

즉, 서비스 호스트의 특정 인스턴스 또는 관련 서비스가 지속적으로 과도한 CPU 또는 RAM 사용과 같은 문제를 일으키는 경우 관련된 특정 서비스를 확인할 수 있습니다. 적어도 어디에서 문제 해결을 시작할지에 대한 아이디어를 얻을 수 있습니다. 서비스 호스트의 특정 인스턴스에서 호스팅하는 서비스를 정확히 확인하는 방법에는 몇 가지가 있습니다. 작업 관리자 내에서 또는 Process Explorer라는 훌륭한 타사 앱을 사용하여 확인할 수 있습니다.

작업 관리자에서 관련 서비스 확인

Windows 8 또는 10을 사용하는 경우 프로세스가 작업 관리자의 "프로세스"탭에 전체 이름으로 표시됩니다. 프로세스가 여러 서비스의 호스트 역할을하는 경우 단순히 프로세스를 확장하여 해당 서비스를 볼 수 있습니다. 이를 통해 서비스 호스트 프로세스의 각 인스턴스에 속하는 서비스를 매우 쉽게 식별 할 수 있습니다.

개별 서비스를 마우스 오른쪽 버튼으로 클릭하여 서비스를 중지하거나 "서비스"제어판 앱에서 보거나 서비스에 대한 정보를 온라인으로 검색 할 수도 있습니다.

Windows 7을 사용하는 경우 상황이 약간 다릅니다. Windows 7 작업 관리자는 동일한 방식으로 프로세스를 그룹화하지 않았으며 일반 프로세스 이름을 표시하지도 않았습니다. 실행중인 "svchost.exe"의 모든 인스턴스 만 표시했습니다. "svchost.exe"의 특정 인스턴스와 관련된 서비스를 확인하려면 약간의 탐색이 필요했습니다.

Windows 7 작업 관리자의 "프로세스"탭에서 특정 "svchost.exe"프로세스를 마우스 오른쪽 단추로 클릭 한 다음 "서비스로 이동"옵션을 선택합니다.

그러면 해당 "svchost.exe"프로세스에서 실행중인 서비스가 모두 선택되어있는 "서비스"탭으로 이동합니다.

그런 다음 "설명"열에서 각 서비스의 전체 이름을 볼 수 있으므로 서비스 실행을 원하지 않는 경우 서비스를 비활성화하거나 문제가 발생하는 이유를 해결할 수 있습니다.

Process Explorer를 사용하여 관련 서비스 확인

Microsoft는 또한 Sysinternals 라인업의 일부로 프로세스 작업을위한 우수한 고급 도구를 제공합니다. Process Explorer를 다운로드하고 실행하기 만하면됩니다. 휴대용 앱이므로 설치할 필요가 없습니다. Process Explorer는 모든 종류의 고급 기능을 제공합니다. 자세한 내용은 Process Explorer 이해 가이드를 읽는 것이 좋습니다.

관련 : "휴대용"앱이란 무엇이며 왜 중요한가요?

하지만 여기서는 프로세스 탐색기가 "svchost.exe"의 각 인스턴스 아래에 관련 서비스를 그룹화합니다. 파일 이름별로 나열되지만 전체 이름도 "설명"열에 표시됩니다. 또한 "svchost.exe"프로세스 위에 마우스 포인터를 올려 놓으면 해당 프로세스와 관련된 모든 서비스 (현재 실행되고 있지 않은 서비스 포함)가 포함 된 팝업을 볼 수 있습니다.

이 프로세스가 바이러스 일 수 있습니까?

프로세스 자체는 공식 Windows 구성 요소입니다. 바이러스가 실제 서비스 호스트를 자체 실행 파일로 대체했을 가능성은 있지만 가능성은 거의 없습니다. 확실하게 알고 싶다면 프로세스의 기본 파일 위치를 확인할 수 있습니다. 작업 관리자에서 서비스 호스트 프로세스를 마우스 오른쪽 단추로 클릭하고 "파일 위치 열기"옵션을 선택합니다.

파일이 Windows \ System32 폴더에 저장되어 있으면 바이러스를 처리하고 있지 않다는 것을 상당히 확신 할 수 있습니다.

관련 : Windows 10 용 최고의 바이러스 백신은 무엇입니까? (Windows Defender는 충분합니까?)

즉, 좀 더 안심하고 싶다면 언제든지 선호하는 바이러스 스캐너를 사용하여 바이러스를 검색 할 수 있습니다. 죄송합니다보다 더 안전!