svchost.exeは何をしているか?タスク、プロセスの話

svchost.exeって何だろうという話。svchostはタスクマネージャでCPUやメモリ使っていて終了したくても終了できないあいつのことです。ネットワークを使っているプロセスや起動しているサービスを調べるとsvchost.exeだったということがよくありますね。また複数起動しているので怪しいと思ったりします。


結論から言うとsvchostはOSの一部として複数のサービスをまとめて動かしているプロセスなので、ウイルスとかではありません。でも中のサービスが暴走するとCPU100%使ってしまうこともないではないです。ちなみに公式な説明だと「ダイナミック リンク ライブラリ (DLL) から実行されるサービスの汎用ホスト プロセス名」となっていますがなんのことやら、という感じですね。

http://support.microsoft.com/default.aspx/kb/250320/ja

Svchost.exe の説明

Svchost.exe は、ダイナミック リンク ライブラリ (DLL) から実行されるサービスの汎用ホスト プロセス名です。Svchost.exe ファイルは、%SystemRoot%\System32 フォルダにあります。起動時に、Svchost.exe はレジストリの Services の部分をチェックし、読み込む必要のあるサービスの一覧を作成します。同時に実行している Svchost.exeの複数のインスタンスが存在できます。


技術的には@ITがわかりやすい。
svchost.exeは、ネットワーク関連の基本的なサービスを起動するための親となるプロセスであり、いくつかのグループに分けてサービスを起動している。

下の「imgsvc」「NetworkService」と言ったグループ毎に優先度とか権限が決まってて、グループの個数だけSvchost.exeが起動する、だからSvchost.exeが複数あるということです。そしてSvchost.exeの下には子供として複数のサービスが動いているので親のSvchost.exeを無理矢理終了すると下手するとOSの機能が死ぬ、ということですねー。

http://www.atmarkit.co.jp/fwin2k/win2ktips/400svchost/svchost.html

svchost.exeプロセスとは?

svchost.exe経由で起動するサービスには多くのものがあるが、このように、いくつかのグループに分かれている。そして同一グループに所属するサービスは、同時に起動することになる。例えば上の画面の例では、「imgsvc」「LocalService」「netsvcs」「NetworkService」「rpcss」「termsvcs」という6つのグループが存在している。どのサービスをどのグループに含めるのかは、サービスの設計者が決めることであり、システム内部の相互の関係や、デバッグや管理のしやすさなどに基づいて決められている(OSのバージョンによっても、同じサービスでもグループ分けが異なる場合がある)。