Svchost nedir ve neden birden fazla örneği çalışıyor?


27

Masaüstümde çalışan altı örnek ve yönettiğim bir sunucuda muhtemelen on tane var. Bu nedir ve sistem işlevi için hayati önem taşır mı?


LOL. Dizüstü bilgisayarımda 91 kişi çalışıyor!
Sen Jacob

Yanıtlar:


16

svchost, Windows'taki hizmetleri barındırır KB'ye bakınız . İşlem Gezgini'ni kullanıyorsanız , hangi hizmetlerin belirli bir işlem içinde çalıştırıldığını görebilirsiniz.


1
Öyleyse bu Linux altında inetd'e az çok denk geliyor mu? Genel amaçlı bir sunucu çerçevesi, böylece geliştiriciler kodun sunucu kısmı hakkında endişelenmeden servisler yazabilirler.
Jason Tan

Aynı fikir Jason, ama açıkça sadece webbish tipi görevleri yerine getiren inetd'den daha fazla menzile sahip değil mi? Güzel bir benzetme olsa da, kesinlikle para için yeterince yakın ...
Rob Moir

20

Windows'un birçok yürütme bileşeni hizmet olarak uygulanır (makine açılışınızdaki tüm hizmetleri görün Control Panel > Administrative Tools > Services). Bunlar arka planda çalışan özel programlardır. Giriş yapan kullanıcı tarafından başlatılmazlar, ancak işletim sistemimin kendisi.

Hizmetlerin çoğu tek başına yürütülemez (EXE dosyaları), ancak işlemleri yürüterek kullanılabilecek kitaplıklara (DLL) uygulanır. Adından da anlaşılacağı gibi, Svchost veya "Service Host", bu DLL'leri çalıştırmak için Windows'un standart çalıştırılabilir kodudur. Dizinde svchost.exe dosyasını bulabilirsiniz %systemroot%\system32.

Hangi svchost örneğinin hangi hizmeti yürütmekte olduğunu bilmek istiyorsanız,

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

komut satırı konsolunda (cmd).

Ekran görüntüsünü yaptığım makinede, svchost örneklerinden biri örneğin 21 farklı servis çalıştırıyor. Bu hizmet grubu, Microsoft'un belgelerine göre daha iyi kontrol ve daha kolay hata ayıklama sağlar .

alt metin

Svchost.exe grupları aşağıdaki kayıt defteri anahtarında tanımlanmıştır:

HKEY_LOCAL_MACHINE\Software\Microsoft\WindowsNT\CurrentVersion\Svchost

Bir ipucu (Windows Vista, Windows 7 veya Windows Server 2008 kullanıyorsanız): Görev Yöneticisini açabilir ve belirli bir svchost.exe işlemine sağ tıklayıp ardından "Servise Git" seçeneğini seçebilirsiniz. Bu , seçilen işlem altında çalışan tüm servislerin işaretleneceği Servisler sekmesini gösterecektir svchost.exe.

Microsoft'un İndirme Merkezi'nde çok ilginç bir belge var:

Microsoft Windows Server 2003 Sistem Hizmetleri Başvurusu

Bu belge, Windows Server 2003 ailesi işletim sistemleri için mevcut tüm hizmetleri özetlemektedir. Servisler ekran adına göre alfabetik olarak listelenmiştir. Her servisin açıklamasının ardından, bir tablo servisle ilgili temel bilgileri listeler.

Her Windows servisi tüm detayları ile listelenmiştir. Örneğin, Terminal Hizmetleri servisinin yürütülebilir dosya adının

 svchost.exe -k termsvcs 

+1 bilgi için teşekkürler .... siz ve 8000 puanınız ... ciddi olarak, bu olması harika bir kaynak. Kendimi Win CLI'da çok iyi bilgili buluyorum ama bunun farkında değildi. Teşekkürler!
cop1152

7

Svchost, "Servis Sunucusu" için kısa. Makinenizdeki Servislerin çoğunu çalışır durumda tutar. Kendi .exe dosyalarında kendilerini barındıran birkaç Servis olacaktır, ancak Windows Servislerinin çoğunun bir svchost.exe işleminde barındırılması gerekir. Makinenizdeki Servisler ağ, RpC sunucusu, ses, olay kaydı vb. Gibi önemli hususları yönetir.

Makinenizde çalıştırdığınız Servisleri görüntülemek için Başlat-> Çalıştır'a "services.msc" yazın. Gereksiz birini görürseniz hizmeti durdurabilirsiniz.

Hangi servislerin farklı svchost.exe dosyaları tarafından barındırıldığını görmek için "tasklist / SVC" yazın.


1

İşte svchost.exe işlemlerinde barındırılan tüm hizmetleri veren bir PowerShell astarı:

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

Tek astarın daha kısa versiyonu şöyle görünür:

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

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.