svchost.exe (サービスホスト) とは その名のとおりWindows のサービスをホストする実行ファイルです。Windowsのサービスの実態は DLLファイルですが、DLLファイルは単体で起動することはできません。このように単体で起動することができないサービスを起動させる役割を持つのが svchost.exe です。
ひとつのサービスが1つの svchost.exe プロセスを専有していることもあれば、複数のサービスが1つの svchost.exe プロセスを共有していることもあります。下記のようなイメージです。
各サービスがどのsvchost.exe のプロセスで起動しているかは tasklist コマンドで確認できます。
例えば W32Time を確認してみると W32Time が1つの svchost.exe プロセスを専有していることがわかります。また、svchost.exe の PID は1092で動いてるこをがわかります。
CMD> tasklist /svc /fi "SERVICES eq W32Time"
イメージ名 PID サービス
========================= ======== ============================================
svchost.exe 1092 W32Time
Eventlog はPID 984の svchost.exe プロセス上で動いていることがわかりますが、この svchost.exe プロセスを他の4つのサービスと共有していることがわかります。
CMD> tasklist /svc /fi "SERVICES eq EventLog"
イメージ名 PID サービス
========================= ======== ============================================
svchost.exe 984 Dhcp, EventLog, lmhosts, TimeBrokerSvc,
WinHttpAutoProxySvc
タスクマネージャーの「プロセス」タブからも、サービスホストとサービスの関係を確認することができます。
※参考:「タスクマネージャー」の開き方
「サービス」タブで各サービスが起動している svchost.exe のPIDの確認することができます。
以上。
コメント