杀死一个Windows服务

问题描述:

我有一个名为'托运人'的Windows服务正在运行哪个进程文件。杀死一个Windows服务

在任务管理器,在服务选项卡显示以下

name:shipper 
PID: 5000 
status:running 

在进程选项卡:

image name: java.exe 
user: SYSTEM 

当我执行以下命令:

taskkill /f /PID 5000 

任务管理器(服务标签)显示该服务已停止。 但是,它会继续执行和处理文件。

只有当我在任务管理器中结束进程时,进程才会停止。 同样,这将工作:

taskkill /f /im "java.exe" 

当然不过,杀死所有Java进程。

什么是正确的方法,使用taskkill(或另一个标准的Windows命令)使用服务的名称(在这种情况下是“托运人”)杀死进程?

感谢

+1

在'taskkill'之前(或代替)'taskkill'尝试过'net stop shipper'吗? – JosefZ

查找使用您服务的ProcessID:

for /f "tokens=2 delims=:" %%i in ('sc queryex "shipper" ^|findstr PID') do echo %%i

,或者尝试在另外一个过滤器TASKKILL /F /FI "services eq shipper"

你可以使用的taskkill下列参数: /T

树杀:终止指定的进程和由它启动的任何子进程。

+0

这给了我正确的PID,但并没有解决问题。当我使用具有该PID的taskkill时,TaskManager说服务已停止,进程(java.exe)继续运行。 – user1052610

+0

好的,抱歉。您是否尝试过使用'/ T' Tree kill:终止指定的进程以及由它启动的任何子进程。 –

+0

/T工作得很好。谢谢 ! – user1052610