Fork me on GitHub

[转载]如何停止处于停止(stopping)状态的Windows 服务(Services)

测试过程中,需要启动和停止windows service,有时候会出现服务处于stopping或者starting的状态,但是,在services界面中,start service/stop service已经处于灰色不可操作状态,用命令行的形式net start/stop servicename也无济于事。停止服务的方法就是关掉这个进程,但是很多时候无法确定是哪个进程与之相关。在命令行中我们可以使用sc queryex servicename这个命令来获得该服务的相关信息。

For example,

Run 'sc queryex OLSLADTservice' in command prompt

The output is below,

SERVICE_NAME: OLSLADTservice
        TYPE               : 10  WIN32_OWN_PROCESS
        STATE              : 4  stopping
                                (STOPPABLE, NOT_PAUSABLE, ACCEPTS_SHUTDOWN)
        WIN32_EXIT_CODE    : 0  (0x0)
        SERVICE_EXIT_CODE  : 0  (0x0)
        CHECKPOINT         : 0x0
        WAIT_HINT          : 0x0
        PID                : 4652
        FLAGS              :

Then we can use 'taskkill /PID 4652 /F' in command prompt to kill the process. /F means 'kill forcely'.

只要找到PID,就可以以命令行的方式,如taskkill /PID结束进程、或者图形界面的方式打开任务管理器找到相应的PID然后右键结束。

结束后,状态就会为空,也就是什么都不显示(正常状态)。

sc功能很强大,具体可以参考下面的两个链接:

http://bartdesmet.net/blogs/bart/archive/2004/10/16/438.aspx

http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/sc.mspx?mfr=true (more info on sc.exe)

原文请看:http://blog.sina.com.cn/s/blog_7ef1df5d0100sp0k.html

posted @ 2013-01-13 15:47  VAllen  阅读(4124)  评论(0编辑  收藏  举报