那是什么进程 —— svchost.exe是什么? 它为何运行?

标签: 进程 svchost exe | 发表时间:2011-07-20 17:33 | 作者:Create Chen ~Wing~
出处:http://www.cnblogs.com/

        你几乎毫不犹豫的来阅读这篇文章是因为你也觉得奇怪, 究竟为什么那里有一打正在运行的进程都叫做 svchost.exe. 你不能终止它们运行, 你也不记得什么时候开始运行它们的...那么它们究竟是什么呢?
        我们写了一系列的文章用来解释在任务管理器里发现的各种进程, 这篇文章是其中的一个部分, 这个系列包括: jusched.exe, dwm.exe, ctfmon.exe, wmpnetwk.exe, wmpnscfg.exe, mDNSResponder.exe, conhost.exe, rundll32.exe, Dpupdchk.exe, and Adobe_Updater.exe.
        你知道这些服务是什么吗? 最好开始阅读吧!

那么它是什么?

        引用微软的解释: "svchost.exe 是一个共有的宿主进程的名字, 为了运行那些来自动态链接库的服务". 请问可以讲得通俗一点吗?
        不久前, 微软开始将所有Windows系统内部的功能移到 .dll 文件中, 从而取代以前的 .exe 文件. 从编程角度来看这这样做有利于复用...但问题是你不能直接从Windows系统中运行一个 .dll 文件, 必须由一个可执行文件加载它, 所以 svchost.exe 就这样产生的.

为什么有很多个 svchost.exe 在运行呢?

        如果你留意过控制面板里的服务这一块, 你也许就会注意到有很多服务是系统所需要的, 但如果所有服务都在一个 svchost.exe 实例下运行, 如果其中一个运行出错也许会导致系统的崩溃...所以将它们分隔开了. 
        这些服务被按照一定的逻辑进行分组, 每个组产生一个的 svchost.exe 实例. 举个例子: 有个 svchost.exe 运行了三个和防火墙有关的服务, 另外有个 svchost.exe 可能运行了有关用户界面的所有服务, 等等.

它有什么用呢?

        你可以停止一些不是绝对需要运行的服务, 另外如果你注意到某个 svchost.exe 很占 CPU, 你可以重启当前运行的这个服务. 最大的问题是怎么识别哪个服务是在哪个特定的 svchost.exe 下运行的...下面的内容将会谈到这个.
        如果你很好奇我们究竟在谈论什么, 就打开你的任务管理器并点击 "查看所有用户进程" 的框框:

用命令行查找

        如果你想看见某个服务宿主在哪个特定的 svchost.exe 中, 你可以 tasklist 命令来查看服务的一个列表.

tasklist /SVC

        用命令行这种方法的的问题是你不必知道这些隐晦的名字指的是什么.

在任务管理器中查看

        你可以右击一个 svchost.exe 进程, 然后选择"查看服务"的选项.

        然后会跳转到服务选项卡, 运行在那个 svchost.exe 进程下的服务会被选中:

        这样做最棒的是你可以在描述一列中看到真实的名字, 所以你可以选择那些不需要运行的服务并禁用它们.

使用 Process Exlorer

        你还可以使用非常棒的  Process Explorer 工具来查看哪些服务是作为一个部分用一个 svchost.exe 来运行的. 把你的鼠标移到一个进程上, 将弹出一个列表来展示它负责的所有服务.

        你还可以在某个 svchost.exe 上双击并选择服务这个选项卡, 你可以在那儿选择关闭一些你不想运行的服务.

禁用服务

        打开控制面板->管理工具->服务, 或者在开始菜单或者运行框中直接输入 services.msc 并回车. 找到列表中你想停止的服务, 你可以双击或者右击并选择属性.

        更改启动类型为禁用, 然后单击停止按钮, 立刻停止它运行.

        你还可以使用命令行来禁用某个服务, 下面这个命令行中的 "trkwks" 是上面对话框中的一个服务的名字, 回到文章上面介绍 tasklist 命令的那个地方你就能找到了.

sc config trkwks start= disabled

        希望这篇文章能帮助到一些人!

原文地址: http://www.howtogeek.com/howto/windows-vista/what-is-svchostexe-and-why-is-it-running/

本文地址: http://www.cnblogs.com/technology/archive/2011/07/20/svchost_exe.html

作者: Create Chen 发表于 2011-07-20 17:33 原文链接

评论: 8 查看评论 发表评论


最新新闻:
· Erlang语言的作者教你如何入手(2011-07-21 07:37)
· 迅雷今晚将登陆纳斯达克 被爆遭唱片公司起诉(2011-07-21 07:35)
· 传Twitter欲以80亿美元估值融资8亿美元(2011-07-21 07:34)
· Wave工程师:Google+不会代替Facebook 会分杯羹(2011-07-21 07:33)
· 微软Outlook侵犯阿朗专利:或赔7500万美元(2011-07-21 07:32)

编辑推荐:Scala 登陆 .NET 平台

网站导航:博客园首页  我的园子  新闻  闪存  小组  博问  知识库

相关 [进程 svchost exe] 推荐:

EXE文件结构及读取方法

- - CSDN博客推荐文章
     EXE File英文全名executable file ,译作可执行文件,可移植可执行 (PE) 文件格式的文件,它可以加载到内存中,并由操作系统加载程序执行,是可在操作系统存储空间中浮动定位的可执行程序. 如记事本程序notepad.exe ,可以用来编辑文档,如:测试.txt双击打开notepad.exe记事本程序来进行编辑处理.

微软修复SVCHOST漏洞解决CPU利用率的问题

- - WPDang
SVCHOST是微软操作系统中的一项进程,微软官方对它的解释是:SVCHOST进程是从动态链接库(DLL)中运行的服务的通用主机进程名称. 这个程序对系统的正常运行是非常重要,而且是不能被结束的. 此前这个进程出现漏洞并困扰着许多用户长达几个月之久,这个漏洞使得XP系统运行过程中CPU的利用率居高不下.

Screen2EXE小巧的屏幕录制软件 保存为高压缩高质量EXE录制格式

- Richard - 爱软件

监控进程

- - 火丁笔记
有时候,进程突然终止服务,可能是没有资源了,也可能是意外,比如说:因为 OOM 被杀;或者由于 BUG 导致崩溃;亦或者误操作等等,此时,我们需要重新启动进程. 实际上,Linux 本身的初始化系统能实现简单的功能,无论是老牌的 SysVinit,还是新潮的  Upstart 或者  Systemd 均可,但它们并不适合处理一些复杂的情况,比如说:CPU 占用超过多少就重启;或者同时管理 100 个 PHP 实现的 Worker 进程等等,如果你有类似的需求,那么可以考虑试试 Monit 和 Supervisor,相信会有不一样的感受.

Linux进程关系

- - 博客园_首页
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明. Linux的进程相互之间有一定的关系. 比如说,在 Linux进程基础中,我们看到,每个进程都有父进程,而所有的进程以init进程为根,形成一个树状结构. 我们在这里讲解进程组和会话,以便以更加丰富的方式了管理进程.

进程互斥与竞态

- MadFrog - 博客园-首页原创精华区
在linux编程中,经常有这样的要求:特定进程(尤其是daemon进程)有且只有一个,即特定资源只能由一进程拥有. 问题是:如何保证特定进程间的“互斥”关系(只有一个实例). 当检测到“互斥(锁定)”时,其余进程可直接退出,而无需同步. 互斥:是指某一资源同时只允许一个访问者对其进行访问,具有唯一性和排它性.

进程监控脚本

- - CSDN博客架构设计推荐文章
# 如果不存在, 就重启他. 作者:ahyswang 发表于2014-10-11 22:34:45 原文链接. 阅读:111 评论:0 查看评论.

Android 进程间通信

- - SegmentFault 最新的文章
单例居然失效了,一个地方设置值,另个地方居然取不到,这怎么可能. 排查半天,发现这两就不在一个进程里,才恍然大悟……. 按照操作系统中的描述:进程一般指一个执行单元,在 PC 和移动设备上指一个程序或者一个应用. 我们都知道,系统为 APP 每个进程分配的内存是有限的,如果想获取更多内存分配,可以使用多进程,将一些看不见的服务、比较独立而又相当占用内存的功能运行在另外一个进程当中.

进程隐藏与进程保护(SSDT Hook 实现)(一)

- Bloger - 博客园-首页原创精华区
应用层调用 Win32 API 的完整执行流程:. 前面一篇博文呢介绍了代码的注入技术(远程线程实现),博文地址如下:. 虽然代码注入是很老的技术了,但是这种技术也还是比较常见,. 当然也比较好用的,比如在 Spy++ 中就使用了远程线程注入技术,. 同时,如果有兴趣的阅读过 Spy++ 的源码的朋友,当然也可以在其源码中阅读到关于远程线程注入技术了.

进程隐藏与进程保护(SSDT Hook 实现)(二)

- Bloger - 博客园-首页原创精华区
引子 – Demo 实现效果:. SSDT Hook 框架搭建:. 隐藏进程列表和保护进程列表的维护:. 引子 – Demo 实现效果:. 上一篇《进程隐藏与进程保护(SSDT Hook 实现)(一)》呢把 SSDT 说得差不多了,. 不过呢,那也只是些理论的东西,看不到什么实物,估计说来说去把人说晕了后,也没什么感觉,.