繁体   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