当我尝试重新启动服务时,服务管理器需要很长时间才能尝试终止服务,然后最终放弃了“服务花了很长时间才能响应”的消息.但是……它也启动了一个新的服务实例.
如果我查看任务管理器或任务列表,我现在可以看到两个运行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?)以期缩小具体原因或冲突,但您处理问题的选择要么与它一起生活,要么重新启动服务器以消除它.
有没有理由你没有考虑过与它一起生活?如果它只是一个僵尸进程,它并没有影响任何东西,我认为你可以推迟重启直到维护窗口或更合适的时间.通常我的方法,当僵尸或挂起过程不干扰任何事情 – 在下一个补丁周期或计划维护窗口期间处理它.