真正杀死Windows中的进程


375

有时,Windows计算机上的程序会发疯并挂起。因此,我将调用任务管理器,然后单击“结束进程”按钮。但是,这并不总是有效的。如果我尝试足够的次数,那么它通常最终会死掉,但是我真的很想能够立即将其杀死。在Linux上,我只能kill -9保证一个进程将消失。

这也可以用于编写批处理脚本,并且在编程时编写批处理脚本。

Windows随附某些程序或命令,该程序或命令将始终终止进程吗? 一个免费的第三方应用程序会很好,尽管我希望能够在我第一次坐下的计算机上执行此操作。


19
流浪过程是编程中一个很常见的问题,我不得不不同意。这不是一个题外话的问题。
Dan Moulding'9

19
作为开发人员,我每天都要处理流程管理。对我来说,这完全是个话题!
约翰·菲茨帕特里克

14
我强烈建议您不要删除此问题。+195,这是涉及该问题的真正的Google热门搜索。
约书亚

2
“除非它们直接涉及主要用于编程的工具,否则,我遇到了有关Visual Studio保持进程运行的问题,这使我无法杀死它。” 关闭Visual Studio有助于消除有问题的过程。
阿金(Joakim)

Answers:


318

TerminateProcessWindows知道杀死进程的最最终方式是Processes-Tab调用上的“ End Process” 。

如果它没有消失,则它当前被锁定在等待某些内核资源(可能是有故障的驱动程序),并且您无能为力(使进程重新启动)。

在以下情况下从回溯查看此博客条目:http : //blogs.technet.com/markrussinovich/archive/2005/08/17/unkillable-processes.aspx

诸如Linux之类的基于Unix的系统也存在一个问题,即如果进程kill -9处于所谓的“不间断睡眠”(以top和ps表示为状态D),则进程可以存活下来,此时进程睡眠得很好,以至于无法处理传入的信号(这就是kill-发送信号)。

通常,不间断的睡眠不应持续很长时间,但是在Windows下,损坏的驱动程序或损坏的userpace程序(vfork不带exec)可能D永远都无法进入睡眠状态。


29
虽然我讨厌这是正确的答案,但我深信毫无疑问,它比下面的taskkill更正确....愚蠢的越野车司机!
codetaku

6
重新启动/注销比重新启动少得多。仍然会失去工作,但也许不会花费太多时间。
awidgery 2013年

8
这是由其他一些过程引起的,请确保初始过程始终在运行。您杀死了旧实例,看门狗启动了一个新实例
pilif 2014年

8
这个答案根本正确。“终止进程”不是杀死进程的最最终方法,因为它不能终止服务进程(例如)。taskkill /f是最终极的。
user626528

5
TaskKill / f仅调用TerminateProcessAPI。它与任务管理器的功能完全相同(不过,您具有正确的权限,并且权限很高)。
pilif

233
taskkill /im myprocess.exe /f

“ / f”表示“力”。如果知道PID,则可以指定该PID,例如:

taskkill /pid 1234 /f

可以输入很多其他选项,只需键入taskkill /?对于他们所有人。“ / t”选项杀死一个进程和所有子进程;这可能对您有用。


10
请注意。如果您正在编写用于服务器管理的脚本,则此功能特别有用。kill.exe(来自NT Res套件)将导致程序退出,但是如果您安装了崩溃处理程序(尤其是windbg),则可能会引起问题,因为操作系统将看到被终止的进程已崩溃,并尝试调试它。Taskkill将不会导致此问题。
亚伦2009年

6
@lzprgmr - TASKKILL和“结束任务”可能都调用了相同的底层窗户“了TerminateProcess”功能 msdn.microsoft.com/en-us/library/windows/desktop/...
JosephStyons

60
这比任务管理器的“结束过程”更有效。
Eddie 2013年

2
我一直在尝试强制杀死SugarSync.exe而不必重新启动(因为在实际运行之前重新启动SugarSync两次,它才能再次正常运行),但是taskkill / T / F / IM SugarSync.exe无法正常工作,尽管它声称“成功”
乔恩·库姆斯

2
谢谢!taskkill /pid 1234 /f当“ 结束任务”拒绝工作时,它会工作!哇!
Hendy Irawan 2015年

37

Process Hacker具有多种杀死进程的方法。

(右键单击该过程,然后转到“杂项”->“终结者”。)


5
不能找到更多佐证的方式,因为搜索只会产生数百万个免费下载!链接。但是它确实做到了它所说的那样,病毒风险等等。
bwerks

2
@Nuzzolilo:可以!右键单击该进程,转到“杂项”->“终结者”。
user541686

6
并非在所有流程上都有效,我有一个在所有选择中都幸存下来的。
Zitrax

7
它使我的计算机蓝屏了。重新启动后,该过程消失了。干得好... -.
Pedro Oliveira

5
不幸的是,终止符已在v2.39中删除:(
raymai97 '17

23

JosepStyons是对的。打开cmd.exe并运行

taskkill /im processname.exe /f

如果出现错误提示,

错误:具有PID 1234的进程“ process.exe”无法终止。原因:访问被拒绝。

然后尝试以管理员身份运行cmd.exe。


9
以管理员身份运行,错误发生了变化。现在它说:ERROR: The process with PID 17888 (child process of PID 17880) could not be terminated. Reason: There is no instance of the task.并且它是指父PID17880。由于找不到父PID,因此它不会杀死孤儿。:(
Jesse Chisholm 2015年

1
“你必须得杀子过程中如果产生了任何成功击杀你的进程”试试这个stackoverflow.com/questions/12528963/...
Dhruv直升机铎

就我而言,我告诉它杀死的僵尸进程是唯一的孩子,没有父母,尽管僵尸仍然认为自己有父母。就我而言,可以通过使用Windows 8.1设置高级修复系统路径来解决,但实际上取消擦除任何磁盘都可以取消,而只需进行完全强制重启即可。常规的关机和重启实际上是睡眠/休眠(以节省启动时间)。让它完全关闭非常重要。
Jesse Chisholm

“拒绝访问”表示该进程已经在关闭过程中。例如,如果您刚刚尝试过将其关闭。您需要等到它关闭。
Pacerier '16

管理员权限下的taskkill结果:拒绝访问。
amuliar


15

一个有效的技巧是附加一个调试器,然后退出调试器。

在XP或Windows 2003上,您可以使用开箱即用的ntsd执行此操作:

ntsd -pn myapp.exe

ntsd将打开一个新窗口。只需在窗口中键入“ q”以退出调试器并退出该过程。

我知道即使在任务管理器似乎无法终止进程的情况下,此方法也可以工作。

不幸的是,ntsd已从Vista中删除,您必须为Windows安装(免费)调试工具,以获得合适的调试器。


1
非常感谢你做的这些。将“ -c q”(不带引号)添加到自动退出,使其成为理想的进程杀手。
乔尼斯(Joanis)

2
当Visual Studio和正在调试的应用程序都挂起时,请附加并杀死VS的旧实例。杀手can可以是VS的新实例,然后可以打开旧项目并允许您继续工作。
布鲁诺·马丁内斯

除了winsdk_web.exe,我无法弄清楚如何从该链接下载任何内容,而该功能什么也没做。
endlith 2014年

现在,您可以通过运行安装程序,然后取消勾选的一切,但“调试的Windows工具”(得到它在Windows 10 SDK docs.microsoft.com/en-us/windows-hardware/drivers/debugger/...
科伯恩

6

设置AT命令以将任务管理器或进程浏览器作为SYSTEM运行。

AT 12:34 /interactive "C:/procexp.exe"

如果进程浏览器在您的根C驱动器中,则它将以SYSTEM形式打开,您可以杀死任何进程而不会出现拒绝访问的错误。将其设置为将来大约一分钟,然后它将为您弹出。


4
尝试这样做时,我收到以下警告,因此似乎不再起作用:“警告:由于安全性的增强,此任务将在预期的时间运行,但不能以交互方式运行。如果需要交互任务,请使用schtasks.exe实用程序('schtasks /?'以获取详细信息)。”
WhiteKnight 2014年

0

如果拒绝ntsd访问,请尝试:

ZeroWave被设计为一个简单的工具,它将提供任何类型的过程的多级终止。

ZeroWave也是一个易于使用的程序,因为它安装简单且图形界面非常友好。

ZeroWave具有三种终止模式,使用“ INSANE”模式可以终止可以在Windows上运行的任何类型的进程。

看来ZeroWave无法杀死avp.exe


0

仅供参考,您有时可以使用SYSTEM或Trustedinstaller杀死任务;)

谷歌quickkill_3_0.bat

sc config TrustedInstaller binPath= "cmd /c TASKKILL /F  /IM notepad.exe
sc start "TrustedInstaller"
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.