Taskkill / f不会杀死进程

问题描述 投票:116回答:28

当我从VS启动VS的实验实例进行调试并停止调试时(有时直接从父VS),zombile devenv.exe进程仍在运行,我无法杀死。它坚持我的许多dll。

当我以管理员身份登录这台64位Win7机器时,我希望能够杀死我想要的任何进程。

I tried (from Administrator command prompt):

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

没有返回任何错误,TASKKILLPSKILL返回终止/终止进程的成功消息。但是devenv.exe仍在运行,它不会重新生成,因为PID保持不变。它只在系统重启时消失,这不是一个很好的解决方案。

注意。 LockHunter显示devenv已经锁定了自己。它无法解锁它。

上面的屏幕截图是Process Monitor的输出,显示devenv处于某种“Process Profiling”循环中(右键单击它并单击新选项卡中的打开图像以正确查看它)。

有关如何在Windows上杀死此类进程的任何想法?

windows windows-7 process windows-7-x64 devenv
28个回答
70
投票

你必须杀死子进程,如果任何产生成功杀死你的进程

taskkill /IM "process_name" /T /F

/T = kills child process

/F = forceful termination of your process

2
投票

一些Exe文件依赖于某些服务,

所以你需要找到相应的服务并先停下来。


2
投票

我将在这里提出一些建议,因为我最近遇到了同样的问题,我在答案中尝试了所有可能的事情,但没有任何效果。我遇到了错误

错误:无法终止PID 23908的过程。原因:没有正在运行的任务实例。

使用命令提示符。 Power shell也没有帮助。它只是执行命令而没有响应进程仍在运行。

直到我决定删除相关的'.exe'文件。由于文件处于活动状态,因此Windows不允许删除,但在该警告窗口中,它为我提供了阻止我想要杀死的任务的进程名称。我能够杀死原始任务,从而杀死了错误的过程。

如果没有解决方案可行,那绝对值得一试。


2
投票

我用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.

对我有用的是sysinternal's 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.

你可以从pskill获得the sysinternal's live site


2
投票

我在一个高架的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


2
投票

我在VirtualBox中遇到了与Java进程相同的问题。

就我而言,这是由于Windows Update补丁KB4338818(Windows 7 x64)中的错误造成的。

我通过以下方式解决了这个问题:

  • 卸载Windows Update修补程序KB4338818
  • 安装Windows Update修补程序KB4338821

1
投票

我在Code :: Blocks中遇到了使用gdb调试过程的问题。一旦它意外地踩到你的源范围之外的指令(如没有源代码或系统函数的lib),你就不能从Code :: Blocks或Task-Manager中退出调试。

我认为在Code :: Blocks中实现gdb是一个错误,但也可能在gdb中;)

我的解决方案

taskkill /F /IM process.exe /T

这显示了父进程的PID。现在杀死父母:

taskkill /PID yyyy

两者都没了。

完成。


1
投票

如果qazxsw poi不起作用。尝试用qazxsw poi打开你的终端。

在Windows菜单中搜索qazxsw poi,然后右键单击qazxsw poi,然后再次运行该命令。这对我有用。


1
投票

如果你下载免费的sysinternals套件,它有一个pskill.exe应用程序,适用于这些类型的任务:pskill.exe“process_name”即使没有使用-t选项,它也适用于这些进程。


1
投票

对我来说,它的工作方式是我必须杀死父进程。计算父流程并将其删除

taskkill /F /T /PID <pid>

0
投票

NirSoft的Run as Administrator为我做了这个工作:

cmd

killprocess手册页是Run as Administrator


26
投票

在Windows Server 2008 R2上遇到同样的问题,没有任何帮助,而不是taskmanager或taskkill。但是,windows powershell以管理员的身份运行“kill -id pid”


0
投票

我遇到了同样的问题,我在端口3000中启动了一个节点应用程序并且没有正确关闭,并且即使在重新启动后进程也继续运行。

在管理员模式下运行的taskkill或powershell命令都不适用于我。

我使用了MS Process Explorer>属性>图像>当前目录(它应该是我的项目目录)。

最后,我必须在安全模式下重新启动并重命名项目文件夹并重新启动。消耗端口3000的节点进程自杀。


0
投票

我遇到了同样的问题,尝试将taskkill /IM "parent_process_name.exe" /T /F 作为“以管理员身份运行”运行。


0
投票

我有完全相同的问题,在另一个网站上发现了这个修复:powershell.exe“Get-Process processname | Stop-Process”它对我有效,我在同一条船上,我不得不重新启动,/ T无法正常工作。


0
投票

由于NirCmd提到一些过程因为无法终止

“未处理的I / O请求”

根据我的经验,我正在处理错误的图形驱动程序,这将导致我的游戏崩溃而无法关闭它,因为最后的手段我禁用了图形驱动程序,并且该过程终于消失了。

如果您的应用程序正在等待来自wifi或图形等驱动程序的资源,请尝试在设备管理器中禁用它们,您需要深入挖掘一下以查看它们挂在哪里。

这当然不推荐,但有时候你没有什么可失去的。


0
投票

我遇到了同样的问题,而且这里的许多人都说没有正常的杀戮命令。我的问题文件是由远程桌面服务器上的用户从网络共享运行的可执行文件。对于多个共享用户而言,在一个工作日内重新启动并非易事。即使用户注销,exe仍然列在任务管理器中。我发送到共享文件夹的服务器,并从计算机管理 - >会话发现,即使他已注销,该会话的用户仍然从该RDP服务器打开。右键单击 - >关闭会话,文件锁已释放。

打败我,为什么我无法结束这一点。我尝试删除文件时最初收到的错误消息是“操作无法完成,因为文件在系统中打开”

希望这有助于其他人。


0
投票

作为管理员运行对我有用:

1.在windows中搜索nircmd killprocess "process name.exe"

2.右键单击here选择“以管理员身份运行”

3.cmd

4.Francis

cmd


0
投票

以管理员身份运行CMD将解决问题


-2
投票

这个页面没有任何帮助,cmd做了。

但是可能是我的进程在杀戮之前解开了,所以如果它对你有帮助,请向上/向下投票。


-7
投票
  1. 打开任务管理器
  2. 选择服务选项卡
  3. 选择要杀死的进程(devenv.exe),然后单击“服务”按钮
  4. 在该过程上,选择属性并禁用它...

23
投票

重启是唯一对我有用的解决方案(到目前为止)。

杰出的Mark Russonovich对不可杀戮的过程有很好的解释。

总而言之,它很可能是由于未经处理的I / O请求未正确处理(由您的程序可能访问的设备驱动程序)

http://blogs.technet.com/b/markrussinovich/archive/2005/08/17/unkillable-processes.aspx


23
投票

taskkill和powershell(kill)方法对我不起作用;它仍然说“拒绝访问”。

我有更好的运气:

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

9
投票

我知道现在已经很晚了,但是taskkill /im devenv.exe /t /f应该可行。 /t也杀死了儿童过程。


6
投票

在我的情况下,经过几天与这个问题的斗争(它发生在VirtualBox和μTorrent进程),我发现它是由网络驱动程序问题引起的,由Windows Update补丁KB4338818(Windows 7 x64)引发。卸载该补丁后,一切都恢复正常。我只是觉得它对其他人有用。


5
投票

我已经看过几次,我唯一的解决方案是重新启动。

您可以尝试使用PowerShell:Get-Process devenv |杀

但如果其他方法失败,这可能也会。 :-(


5
投票

我可以通过杀死explorer.exe解决我的问题来解决这个问题,而explorer.exe反过来又沉迷于我想要杀死的进程。我想如果进程通过可能被锁定的钩子打开接口,也可能发生这种情况。


3
投票

本地tskill <pid>(或tskill.exe <pid>)在Windows 10上为我工作,没有其他原生答案。

在我的情况下,我有一些chrome.exe进程,任务管理器的'结束任务'正在工作,但taskkill /F /T /PID <pid>和powershell的kill -id <pid>都没有工作(即使两个shell都以管理员身份运行)。

这是非常奇怪的,因为taskkill声称是一个更好的api和更多版本的tskill

在我的情况下杀死某个任务的所有实例我使用FOR /F "usebackq tokens=2 skip=2" %i IN (`TASKLIST /FI "IMAGENAME eq name_of_task.exe"`) DO tskill %i

© www.soinside.com 2019 - 2024. All rights reserved.