如何在Windows 2008R2上终止挂起的服务

前端之家收集整理的这篇文章主要介绍了如何在Windows 2008R2上终止挂起的服务前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一台运行NSClient的 Windows 2008R2服务器.出于某种原因,这项服务已经扭曲了,并停止响应Nagios民意调查.

当我尝试重新启动服务时,服务管理器需要很长时间才能尝试终止服务,然后最终放弃了“服务花了很长时间才能响应”的消息.但是……它也启动了一个新的服务实例.

如果我查看任务管理器或任务列表,我现在可以看到两个运行nsclient .exe的实例.

我试图使用以下方法杀死这两个:

>右键单击并在任务管理器中“结束进程” – 假装终止进程并报告没有错误(例如拒绝访问)但该进程仍然存在.
> taskkill / PID< proc id> / F – 报告成功:PID 6672的过程已终止.但这个过程仍在运行.
>下载了SysInternals PsTools并运行了pskill< PID> –
报告处理< PID>被杀 – 但这个过程仍在那里.
>执行hh:mm pskill< PID>让pskill作为SYSTEM帐户执行此操作…并且您猜对了该进程仍在运行.

以上所有内容都在管理员命令提示符下运行.

除了不太理想的重启(盒子是一个相当关键的生产服务器),我还能尝试什么?

服务器没有任何资源压力(内存,cpu,磁盘等),并且运行在它上面的一切都很好.

快速查看SysInternals Process Explorer中的threads选项卡,可以看出所有这些nsclient .exe实例都被卡住了:

顺便说一句,我也尝试杀死这些僵尸(?)进程(使用TCPView)的所有TCP连接,希望我可以启动一个新实例,它将能够获取端口5666.然后我们可以重新启动服务器当事情更安静,但唉,这是行不通的.

即使看起来你已经想到了这一点,但问题在于进程正在等待内核的某些东西. (这通常是驱动程序级别的问题,但并非总是如此.)杀死此类进程的唯一方法是卸载内核,当然,如果不重新启动,您就无法执行此操作.

可能值得尝试一些内核调试(does this tool work on 2008 R2?)以期缩小具体原因或冲突,但您处理问题的选择要么与它一起生活,要么重新启动服务器以消除它.

有没有理由你没有考虑过与它一起生活?如果它只是一个僵尸进程,它并没有影响任何东西,我认为你可以推迟重启直到维护窗口或更合适的时间.通常我的方法,当僵尸或挂起过程不干扰任何事情 – 在下一个补丁周期或计划维护窗口期间处理它.

猜你在找的Windows相关文章