工作中有时需要启动和停止windows service,有时候会出现服务处于stopping或者starting的状态,但是,在services界面中,start service/stop service已经处于灰色不可操作状态,用命令行的形式net start/stop servicename也无济于事。停止服务的方法就是关掉这个进程,但是很多时候无法确定是哪个进程与之相关。在命令行中我们可以使用sc queryex servicename这个命令来获得该服务的相关信息。
For example,
Run 'sc queryex WebsenseDCAgent' in command prompt
The output is below,
SERVICE_NAME: WebsenseDCAgent
TYPE : 10 WIN32_OWN_PROCESS
STATE : 3 STOP_PENDING
(STOPPABLE, NOT_PAUSABLE, ACCEPTS_SHUTDOWN)
WIN32_EXIT_CODE : 0 (0x0)
SERVICE_EXIT_CODE : 0 (0x0)
CHECKPOINT : 0x0
WAIT_HINT : 0x1d4c8
PID : 4488
FLAGS :
查看到此服务的进程号以后我们可以用命令 'taskkill /PID 4488 /F' 来强制结束此服务的进程. /F means 'kill forcely'.
<a href="http://allanfan.blog.51cto.com/attachment/201305/4/520839_1367667177A13K.png"></a>
过一会儿我们再查看服务的状态它会自动再运行,OK大功告成
<a href="http://allanfan.blog.51cto.com/attachment/201305/4/520839_1367667185vBVK.png"></a>
补上hyy1988说的方法:就是 在 Service上点右键有个 Go to Process,会转到这个Service依赖的进程上,Kill掉,完事。
<a href="http://allanfan.blog.51cto.com/attachment/201305/6/520839_1367836035b2T6.png"></a>
本文转自allanhi 51CTO博客,原文链接:http://blog.51cto.com/allanfan/1193132,如需转载请自行联系原作者