簡體   English   中英

Taskkill /f 不會殺死進程

[英]Taskkill /f doesn't kill a process

當我從 VS 啟動 VS 的 Experimental 實例進行調試並停止調試(有時直接從父 VS)時,一個僵屍 devenv.exe 進程仍在運行,我無法殺死它。 它保留了我的許多 dll。

當我以管理員身份登錄到這台 64 位 Win7 機器時,我希望能夠殺死任何我想殺死的進程。

I tried (from Administrator command prompt):

End Task from Task Manager.
TASKKILL /F /IM devenv.exe
PSKILL devenv.exe

None 返回任何錯誤, TASKKILLPSKILL返回終止/終止進程的成功消息。 但是 devenv.exe 仍然運行,它不會重新生成,因為PID保持不變。 它僅在重新啟動系統時消失,這不是一個很好的解決方案。

筆記。 LockHunter 顯示 devenv 已鎖定自身。 而且它無法解鎖。

進程監視器顯示 devenv 處於某種“進程分析”循環中

上面的屏幕截圖是進程監視器的 output 顯示 devenv 處於某種“進程分析”循環中(右鍵單擊它並單擊在新選項卡中打開圖像以正確查看它)。

任何想法如何在 Windows 上終止這樣的進程?

如果有任何子進程成功殺死您的進程,您也必須殺死子進程

taskkill /IM "process_name" /T /F

/T = kills child process

/F = forceful termination of your process

taskkill 和 powershell (kill) 方法對我不起作用; 它仍然說“拒絕訪問”。

我有更好的運氣:

wmic process where "name='myprocessname.exe'" delete

剛剛在 Windows Server 2008 R2 上遇到了同樣的問題,但沒有任何幫助,而不是 taskmanager 或 taskkill。 但是,以管理員身份運行的 Windows PowerShell 使用“kill -id pid”

重新啟動是唯一對我有用的解決方案(到目前為止)。

永遠優秀的 Mark Russonovich 對不可殺死的過程有一個很好的解釋。

總而言之,很可能是由於未處理的 I/O 請求未正確處理(由您的程序可能訪問過的設備驅動程序)

https://techcommunity.microsoft.com/t5/windows-blog-archive/unkillable-processes/ba-p/723389

我知道已經晚了,但是taskkill /im devenv.exe /t /f應該可以工作。 /t也會殺死子進程。

就我而言,經過幾天與這個問題的斗爭(它發生在 VirtualBox 和 µTorrent 進程中),我發現它是由網絡驅動程序問題引起的,由 Windows 更新補丁KB4338818 (Windows 7 x64) 引起。 卸載該補丁后,一切恢復正常。 我只是認為它可能對其他人有用。

我可以通過殺死 explorer.exe 來解決這個問題,這反過來又沉迷於我想殺死的進程。 我想如果進程通過可能被鎖定的鈎子打開接口,這也可能發生。

我已經看過幾次了,我唯一的解決方案是重新啟動。

您可以嘗試使用 PowerShell:Get-Process devenv |

但如果其他方法失敗,這可能也會失敗。 :-(

本機tskill <pid> (或tskill.exe <pid> )在 Windows 10 上為我工作,而沒有其他本機答案。

就我而言,我有一些任務管理器的“結束任務”正在運行的 chrome.exe 進程,但是taskkill /F /T /PID <pid>和 powershell 的kill -id <pid>都不起作用(即使兩個外殼都作為行政)。

這很奇怪,因為taskkill據稱是tskill的更好的 api-and-does-more 版本。

在我的情況下,要殺死某個任務的所有實例,我使用FOR /F "usebackq tokens=2 skip=2" %i IN (`TASKLIST /FI "IMAGENAME eq name_of_task.exe"`) DO tskill %i

我將在這里提出一些建議,因為我最近遇到了同樣的問題,我在答案中嘗試了所有可能的方法,但沒有任何效果。 我收到了類似的錯誤

錯誤:無法終止 PID 為 23908 的進程。 原因:沒有正在運行的任務實例。

使用命令提示符。 Power shell 也沒有幫助。 它只會執行命令,而進程仍在運行時沒有響應。

直到我決定刪除關聯的“.exe”文件。 由於該文件處於活動狀態,Windows 不允許刪除,但在該警告窗口中,它給了我阻止我想要終止的任務的進程的名稱。 我能夠終止原始任務,從而終止有問題的過程。

如果沒有一個解決方案奏效,那絕對值得一試。

我用taskkill得到以下結果

>taskkill /im "MyApp.exe" /t /f
ERROR: The process with PID 32040 (child process of PID 54176) could not be terminated.
Reason: There is no running instance of the task.

>taskkill /pid 54176  /t /f
ERROR: The process "54176" not found.

對我pskillsysinternal 的pskill

>pskill.exe -t 32040

PsKill v1.15 - Terminates processes on local or remote systems
Copyright (C) 1999-2012  Mark Russinovich
Sysinternals - www.sysinternals.com

Process 32040 killed.

您可以從sysinternal 的實時站點獲取pskill

一些 Exe 文件依賴於一些服務,

所以你需要找到相應的服務並先停止。

如果taskkill /F /T /PID <pid>不起作用。 嘗試使用Run as Administrator打開提升的終端。

在 Windows 菜單中搜索cmd ,然后右鍵單擊Run as Administrator ,然后再次運行該命令。 這對我有用。

以管理員身份運行對我有用:

1.在windows中搜索cmd

2.右鍵單擊cmd選擇“以管理員身份運行”

3. netstat -ano | findstr :8080 netstat -ano | findstr :8080

taskkill/pid (your number) /F

我的結果

關於 Java 進程,我在 VirtualBox 中也遇到了同樣的問題。

就我而言,這是由於 Windows 更新補丁 KB4338818 (Windows 7 x64) 中的錯誤所致。

我通過執行以下操作解決了它:

  • 卸載 Windows 更新補丁 KB4338818
  • 安裝 Windows 更新補丁 KB4338821

對我來說,它的工作方式是我必須殺死父進程。 找出父進程並殺死它

taskkill /IM "parent_process_name.exe" /T /F

我在 Code::Blocks 中使用 gdb 調試進程有問題。 一旦它在意外進入超出源范圍的指令時掛起(作為沒有源或系統函數的庫),您既不能從 Code::Blocks 也不能從任務管理器退出調試。

我認為這是在 Code::Blocks 中實現 gdb 的錯誤,但也可能在 gdb 中;)

我的解決方案:

taskkill /F /IM process.exe /T

這顯示了父進程的 PID。 現在殺死父母:

taskkill /PID yyyy

兩個都沒了。

完畢。

NirSoft 的NirCmd為我完成了這項工作:

nircmd killprocess "process name.exe"

killprocess 手冊頁在這里

我遇到了完全相同的問題,在另一個站點上找到了此修復程序:powershell.exe "Get-Process processname| Stop-Process" 它對我有用,我在同一條船上必須重新啟動, /T 不起作用.

如果您下載免費的 sysinternals 套件,它有一個 pskill.exe 應用程序,可以很好地處理這些類型的任務: pskill.exe "process_name" 即使不使用 -t 選項,它也可以處理這些進程。

我在提升的 powershell 上執行了以下操作:

PS C:\Windows\system32> wmic.exe /interactive:off process where "name like `'java%'`" call terminate

命令輸出:

Executing (\\SRV\ROOT\CIMV2:Win32_Process.Handle="3064")->terminate()
Method execution successful.

輸出參數:

instance of __PARAMETERS
{ReturnValue = 0; };

我得到了一些語法信息: https : //community.spiceworks.com/topic/871561-wmic-error-like-invalid-alias-verb

正如弗朗西斯提到的,某些進程無法終止,因為

“未處理的 I/O 請求”

根據我的經驗,我正在處理有問題的圖形驅動程序,這會導致我的游戲崩潰並且無法關閉它,作為最后的手段,我禁用了圖形驅動程序,並且該過程最終消失了。

如果您的應用程序正在等待來自驅動程序(如 wifi 或圖形)的資源,請嘗試在設備管理器中禁用它們,您需要深入挖掘以查看它們掛在哪里。

這當然是不推薦的,但有時你已經沒有什么可失去的了。

我遇到了同樣的問題,正如這里的許多其他人所說,正常的 Kill 命令都不起作用。 我的問題文件是遠程桌面服務器上的用戶從網絡共享運行的可執行文件。 擁有多個共享用戶,在工作日重新啟動並不是一件容易的事。 即使用戶注銷,該 exe 仍列在任務管理器中。 我發送到共享文件夾的服務器,並從計算機管理 -> 會話發現會話的用戶仍然從該 RDP 服務器打開,即使他已注銷。 右鍵單擊-> 關閉會話並釋放文件鎖。

打敗我為什么我不能結束 taks。 我嘗試刪除文件時最初收到的錯誤消息是“無法完成操作,因為文件已在系統中打開”

希望這對其他人有幫助。

就我而言,這里的解決方案都沒有奏效。 我最終發現有問題的程序在嘗試輪詢 USB 音頻接口時被凍結。 所以我拔掉了我連接的 USB DAC,令我驚訝的是應用程序立即退出。 Francis 的回答提到這可能是“未處理的 I/O 請求沒有得到正確處理(由您的程序可能訪問過的設備驅動程序)”的結果,這可能解釋了為什么會修復它。

我想這真的取決於程序在凍結時在做什么,但是如果其他解決方案都不起作用,請嘗試斷開所有 USB 設備的連接,看看其中一個是否可能是原因。

我遇到了同樣的問題,我在端口 3000 中啟動了一個節點應用程序,但它沒有正確關閉,即使重新啟動后該進程仍在運行。

在管理員模式下運行的 taskkill 或 powershell 命令都不適合我。

我使用了 MS Process Expoler > Properties > Image > Current directory(應該是我的項目目錄)。

最后,我不得不在安全模式下重新啟動並重命名項目文件夾並重新啟動。 消耗端口 3000 的 Node 進程自行終止。

我遇到了同樣的問題,嘗試將cmd作為“以管理員身份運行”運行。

taskkill \/f \/im "process.exe"

以管理員身份運行 cmd 或 .bat 文件為我工作

用於在 windows 中殺死在 windows 上運行的 PID 任務

TASKKILL /PID "任務名" /F

使用 wmic:顯示所有正在運行的進程,其中進程名稱為 cmd.exe

wmic process where name="cmd.exe" GET ProcessId, CommandLine,CreationClassName

然后通過 processId (PID) 終止進程的特定實例

WMIC PROCESS WHERE "ProcessID=13800" CALL TERMINATE

以管理員身份運行 CMD 將解決問題

  1. 打開任務管理器
  2. 選擇服務選項卡
  3. 選擇要殺死的進程( devenv.exe )並單擊服務按鈕
  4. 就在這個過程中,選擇屬性並禁用它...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM