APP下载

自己动手 管好挂起的系统服务

2021-11-23俞木发

电脑爱好者 2021年22期
关键词:命令提示符管理器命令

俞木发

了解服务状态

在正常情况下服务状态只有“正在运行”和“已停止”两种,但是服务处于启动(或者重启)过程,以及对服务发出停止/启动指令时,就会显示为“正在启动”或“正在停止”状态。如果服务可以正常响应,其状态会在一段时间(一般3~5秒)后自动变为上述的正常状态。但在一些异常的情况下,由于服务无法完成停止或启动,就会处于挂起状态(这个现象和内存不足时系统停止响应的状态类似,下文称之为挂起问题),此时右键菜单中的相应管理功能选项也会变为灰色无法使用,服务其实是处于“假死”状态(图1)。

对症下药 解决服务挂起问题

对于服务挂起处于“假死”状态的情况,解决方法是将服务彻底停止后再启动。这里我们根据不同的情况介绍相应的解决方案。

方法1:使用命令行强行终止

在发现服务处于挂起状态时,可以打开任务管理器,找到服务对应的PID,如图1所示的例子,该服务的PID为“2640”。接着使用管理员身份启动命令提示符,输入命令“taskkill /pid 2640 -t -f”并回车(每条命令的输入后均需回车确认,下同),这样可以将该服务终止。然后再次启动该服务即可(图2)。

如果不知道具体哪个服务被挂起,或者有少数服务被挂起,可以先打开图1所示的窗口,点击“状态”排序,显示为“正在启动”或“正在停止”的均为被挂起的服务。然后在上述的窗口中继续执行命令“taskkill /F /FI"status eq not responding"”(参数/FI "status eq not responding",表示筛选服务状态异常的进程),可以停止本机所有被挂起的服务(图3)。

方法2:检查依存服务导致挂起异常

上述的方法有时仍然无法解决问题,这是因为服务的依存关系导致的。服务的依存关系有两类:一类是“此服务依赖以下的系统组件”,即该服务启动需要先保证依赖的组件服务是处于正常启动状态;另一类则是“以下系统组件依赖该服务”,即某些系统组件正常工作需要先保证该服务状态是正常的,可以依次打开“服务属性→依存关系”进行查看(图4)。

“方法1”无法解决问题,原因就出在服务依赖的系统组件服务异常,比如“Windows Update”服务依赖RPC组件服务,如果RPC服务异常(如未启动),无论如何停止/ 重启“Wi n d ow sUpdate”服务仍会显示异常。解决方法是先在任务管理器中找到异常的服务,同时根据窗口中“描述”栏的字符在服务管理窗口中找到对应的服务(图5)。

接着按照图4所示窗口找到“此服务依赖以下的系统组件”下显示的服务,依次停止并重启这里显示的系统组件服务后再执行“方法1”的操作即可。同样的,执行“方法1”的操作后,可能导致“以下系统组件依赖该服务”下的组件服务异常,解决的方法同上。

方法3:提權结束无法终止的服务

很多系统服务的运行账户是系统内置的SYSTEM,即使我们用管理员身份启动命令提示符,在实际执行taskkill命令时,系统也会提示没有足够的权限,比如很多安全软件后台驻留的服务(图6)。对于这类服务,我们可以使用Psexec.exe和Process Explorer来获取管理权限。

首先以管理员身份启动命令提示符,输入并执行“d:\PSExec -s-i d:\ProcExp\ProcExp.exe”命令(假设Ps exe c .exe和ProcessExplorer均安装在D : \),启动Process Explorer后在进程列表中找到挂起的进程并双击打开,在打开的窗口中切换到“服务”,这里可以看到进程所对应的系统服务(图7)。

接着按提示点击“ 权限”,在打开的安全设置窗口的“组和用户名”列表下选中“Administrators”,将其权限设置为“完全控制”(图8)。最后依次点击“确定”退出,这样当前管理员就可以在任务管理器中或者使用taskkill命令管理这些服务了。

猜你喜欢

命令提示符管理器命令
只听主人的命令
Windows文件缓冲处理技术概述
让命令提示符窗口与Windows更融洽
移防命令下达后
这是人民的命令
高集成度2.5A备份电源管理器简化锂离子电池备份系统
Windows命令模式另类用法
Windows 7和Vista中命令提示符的几个小技巧
在Win 7下利用凭据管理器提高访问速度等
对卢沟桥事变期间一份“作战命令”的考析