2015-07-21 143 views
1

我有一個名爲'託運人'的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

回答

0

查找使用您服務的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