原文:http://www.howtogeek.com/howto/windows-vista/what-is-svchostexe-and-why-is-it-running/
自己简单翻译了下,图就不贴了,其实svchost很容易理解svc是service的简写,host是宿主的意思,svchost就是服务寄生的宿主。
svchost.exe是什么?为什么一直在运行
--------------------------------------------------
毫无疑问的是你读到这篇文章是因为你正在疑惑,为什么会有很多名为svchost的程序在运行,你不能终止他们,你也未曾运行……那么,他们到底是什么呢?
这篇文章属于我们的解释任务管理器进程的系列文章中的一篇,包括jusched.exe, dwm.exe, ctfmon.exe, wmpnetwk.exe, wmpnscfg.exe, mDNSResponder.exe, conhost.exe, rundll32.exe, Dpupdchk.exe, 和 Adobe_Updater.exe.
你知道这些服务是什么吗?继续看吧。
他们到底是什么呢?
--------------------------
根据微软的解释,“svchost是一场个总的宿主进程的名字用来运行动态链接库”,你说人话吗?
在以前,微软开始内部Windows的服务从exe文件移到了dll文件里。从程序的角度来说,这样会增加重复利用……但是问题是你无法直接将一个dll文件载入,他必须载入到一个exe可执行文件才行。因此svchost进程就诞生了。
为什么会有这么多svchost进程在运行呢?
如果你看看服务标签页,你会发现Windows会要求了一堆的服务。如果每一个服务都在了一个svchost下,如果出现了一个错误,整个Windows都会宕掉……所以他们被分开了。
这些服务被划分成了逻辑上的几个部分,因此一个单独的svchost进程为一组的服务生成。比如一个svchost实例运行了三个关于防火墙的服务,另外的一个svchost的服务也许和用户界面有关,以此类推。
所以我们可以做些什么呢
你可以终止或者禁用一些不需要的服务。你也可以找到非常耗系统资源的svchost,然后重启服务。
最大的问题是在svchost下到底运行的是什么服务……我们在后面会提到。
如果你仍关心所说的问题,可以打开任务管理器,然后点击打开用户所以的进程:
图
如果你用的Windows8 或 10 ,你需要到详细标签页。
通过命令行来查看
------------------------
如果你需要查看svchost下有哪些进程可以通过tasklist命令来查看哪些服务的列表。
tasklist /SVC
使用命令的问题是,你无法知道这些神秘的名字究竟代表什么。
在任务管理器下查看
---------------------------
查看进程的详情,在各个版本的Windows下有细小的不同,你可以右键打开一个特定的svchost进程,然后选择转到服务选项。
图
这个会跳转到服务标签页,在刚刚选择的svchost背后就运行着的服务就会被选中。win8或10有一点不同。
图
这么做最棒的地方在于你可以看到介绍这个服务的详情页,这样你就可以选择是否要停止这个服务或者你根本不想运行。
使用process explorer
--------------------------
你可以用使用非常棒的process explorer工具(来自微软sysinternals)来查看svchost下运行了哪些服务。
将你的鼠标放在任意一个进程下,可以弹出一个框介绍每一个服务的。
或者你可以双击svchot选择service标签页,你可以选择终止你想要停止的服务。
禁用服务
-----------
通过控制面板的管理员工具的『服务』,或者在运行中输入SERVICES.MSC 。
找到你想要关闭的服务,或者双击,或者右键点properties。
图
选择启动方式,改成禁用,然后点击停止按钮直接停止掉它。
你也可以使用命令行来禁用服务。trkwks上面提到的服务名,你也会在刚刚的tasklist命令里发现这个个服务。
sc config trkwks start=disable
希望能帮到一些朋友!