首页 > 代码库 > 关于windows的svchost进程的问题(年代有点久远)
关于windows的svchost进程的问题(年代有点久远)
这是N年前写的一篇关于svchost的blog,虽然写的不好却是我第一次写的技术类blog, 发上来做开博第一篇吧。
***************************************************
关于windows的svchost进程的问题
最近我电脑老是开机提示Svchost.exe错误,内存0x00000000不能为write,点击取消后有时候会出现系统无声音,界面变回win2000的情况。网络连接符号消失但是却可以上网。上网百度Google了很久,很多都说Svchost出错是中毒症状,杀毒无用的话建议重装系统。[em]e21[/em] 这些建议一点建设性都没有。重装系统多麻烦啊,还是决定研究下其他解决方法。
可以肯定我的机器是没有中毒的,卡巴和安全卫士都是最新升级的。而且进程里面没有异常。再上网查找了Svchost宿主进程的作用,发现其实svchost是windows重要的进程来的,很多动态链接库dll服务都是依赖于svchost宿主存在的。一般xp下面有4到5个svchost.Win2003会有更多。开机之后所有自动加载的service都会
运行在svchost上。而具体什么服务加载可以用命令行tasklist /svc查看。
其中的一个svchost加载了很多服务,有入AudioSrv声音服务,Themes主题界面服务等等。
我在开机Svchost.exe出错之后,发现会没声音,主题界面变成win2000的界面,估计就是这个svchost进程死掉的原因。(当然其他的服务对于一般应用没有什么影响,可能不容易察觉)在svchost出错后点取消,再用tasklist /svc会发现其他四个svchost进程都在,就是唯独这个加载很多服务的svchost不存在(其实可以用360安全卫士的进程查看可以知道是“C:\WINDOWS\system32\svchost.exe -k netsvcs”出错,netsvcs是很多网络服务所运行的dll,方法就是在svchost出错的时候不要急着去点取消,先查看进程,然后点取消后再次查看,就可以知道哪些svchost进程出错死掉了)发现问题所在了。离解决问题就不远了
去到 控制面板>管理工具>服务 里面,会发现有不少服务是没启动的,有如我上面提到的AudioSrv声音服务,Themes主题界面服务等等、启动类型是“自动”,但是状态那里确是空白也就是启动失败。(当然你可以用 制面板>管理工具>事件查看器看知道哪些服务出错。)然后自己一个个把启动类型是“自动”的服务启动开来,(右键点击选启动),再成功启动N个服务后,发现有个叫IPv6 Helper Service的服务要很久,而且启动失败提示svchost.exe错误。终于找到罪魁祸首了,就是这个所谓的IPv6 Helper Service的服务导致宿主svchost出错。IPv6还没网络支持呢,等普及开来再开这个服务也不迟,索性设置成手动启动(设禁止也OK的拉),重启电脑,一切就正常拉,之前我在路由上老见到端口映射有我机器的svchost.exe,还以为是病毒,其实就是这个IPv6的服务在路由上端口映射了。NND
令人意外的是我以前开机window登录后假死30秒左右的问题不见了,还以为是卡巴检测启动程序慢而已。现在把IPv6关了,只用3秒钟电脑就可以用。错怪卡巴了。哈哈。后来查了下才发现原来IPv6 helper service启动的时候会连接检测网络,这段时间里面电脑是被冻结的。米软的东西真是bt啊,不过在装XP的时候是默认关闭IPv6的,不过在有些软件安装后可以会激活自动开启IPv6.回想了一下,应该是我以前装IBM的Agency Controler导致的。卸载Agency Controler后这个IPv6却一直残留着导致开机假死30秒。搞得我3G的双核扣肉开机居然比P4还慢。郁闷了几个月,连卡巴也背了几个月黑锅.
BTW,发现电脑有问题了去问别人,如果那人连看都没看就建议你重装系统,那人十有八九是个菜鸟, 当然了我自己也菜鸟过很多年
关于windows的svchost进程的问题(年代有点久远)