您的位置:首页 > 其它

Print Spooler服务解析和故障处理

2010-09-27 15:04 260 查看
Print Spooler服务描述: 管理所有本地和网络打印队列及控制所有打印工作。如果此服务被停用,本地计算机上的打印将不可用。如果此服务被禁用,任何依赖于它的服务将无法启用。

  可执行文件路径: c:\WINDOWS\system32\spoolsv.exe

  Spooler(打印后台处理服务)的进程名是spoolsv.exe,WinXP Home/PRO默认安装的启动类型是自动,依赖于Remote Procedure Call。Spooler是为了提高文件打印效率,将多个请求打印的文档统一进行保存和管理,先将要打印的文件拷贝到内存,待打印机空闲后,再将数据送往打印机处理。这样处理速度更快些。建议将其设置为手动,有打印任务时再打开。如果没有打印机自然是禁用了。

出错实例:

1、Print Spooler 服务启动失败:Print Spooler 服务的默认启动方式为自动,由于Print Spooler服务的依赖关系里没有Server服务(可能是安装某些软件时造成了注册表项丢失),从而试图抢先在Server服务启动之前启动Print Spooler服务造成的,在注册表里给Print Spooler服务增加依赖项LanmanServer,再把Print Spooler服务的启动方式改为自动,出错现象得到了解决。

2、每次开机以后发现spoolsv.exe进程消耗了大量的cpu资源(70%),严重影响了系统的运行。

我们知道每当创建一个打印任务以后,会在 %systemroot%\system32\spool\printers 目录下创建2个文件,扩展名分别为 shd 和 spl。如果估计没错,肯定是这里出现问题了。远程控制,打开 %systemroot%\system32\spool\printers 目录检查,果然发现有2个文件,扩展名分别为 shd 和 spl,如果删除这2个文件会不会解决 spoolsv.exe 进程消耗大量的cpu资源的问题呢?

我们来进行故障处理:

尝试先把 print spooler 服务停止掉,然后再把 %systemroot%\system32\spool\printers 目录下的 shd 和 spl 文件删除,重新启动 print spooler 服务,故障排除。故障分析:

print spooler 服务启动的时候会检查打印队列,如果发现有未完成的队列则会尝试执行,如果队列文件被破坏,则可造成 print spooler 服务执行的时候出现死循环,导致 spoolsv.exe 进程消耗大量的cpu资源.

spl文件为当前脱机文件,包含当前打印任务。

shd文件为当前脱机打印的信息文件,包含谁发起了打印任务,打印任务中的队列信息,以及该打印任务发送到哪里等等信息。

此外还伴随一些tmp文件,如果spl、shd文件出现问题,或者打印队列送往无效打印机,又或者送往的打印驱动模块无法正确响应,这可能导致spoolsv.exe进行反复尝试,进而占用大量cpu资源,这个现象有可能导致系统挂起。

本文出自 “滴水穿石孙杰” 博客,请务必保留此出处http://xjsunjie.blog.51cto.com/999372/397992
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: