我该如何杀死一个无法杀死的进程?


13

我关闭了一个应用程序,但该过程仍在列表中。我尝试从任务管理器中停止,但是什么也没发生。没有错误消息,进程仅停留在列表中。我尝试调试它,但是调试器说:

无法附加到崩溃的进程。不支持请求的操作。

有时在VS2008和其他一些程序中会发生这种情况。

如何终止呢?


这就是我改用Linux的原因之一。尽管我在Win XP下遇到了这个问题,但从那以后似乎并没有改变。
petersohn

4
根据samba.2283325.n4.nabble.com/…,在Linux中,情况完全相同-等待内核的进程是无法杀死的。这是我切换到Windows的原因之一。
ta.speot.is

Mark Russinovich的文章“ Unkillable Processes”说,您可以使用本地内核调试工具来找出为什么进程不可杀死的原因。本文为您提供有关操作方法的说明。您将需要免费的Windows调试工具
unforgettableidSupportsMonica's

Answers:


12

不幸的是,唯一真正的办法就是重启。

我也遇到了这个问题,我绝对找不到成功杀死崩溃进程的方法。我几乎尝试了所有可以找到的pskill /类似应用程序,但都失败了。

据我了解,此问题的最常见原因是有问题的进程加载了系统驱动程序,然后向其发送无法完成的请求。显然,内核在关闭时无法从进程中正确分配内存,因为崩溃的驱动程序处于IO等待状态,需要访问进程地址空间。

(大部分抄袭自)http://blogs.technet.com/markrussinovich/archive/2005/08/17/unkillable-processes.aspx


2
是的,那当然是最常见的原因。我见过的大多数不可杀灭的过程都与CD驱动器(例如EAC.EXE)或电视调谐器/视频卡(例如ATIMMC.EXE)有关。在这两种情况下,这都归因于驾驶员的过失,任何学习和完成驾驶员工作的人都将知道在该级别上如何解决有问题的事情,以及他们在用户领域可能产生什么样的看似“奇怪”​​的影响(至少是BSOD是明确的)。
Synetech 2011年

1
@ Synetech公司 -我遇到的所有问题都是与磁盘相关的,或者根本就不需要驱动程序的软件(我不知道为什么决定要在内核中运行它们)。我认为您无法就哪种软件最常发生无法崩溃的崩溃发表任何笼统的声明。
假名称

3

Process Hacker具有Miscellaneous→Terminator命令,该命令将尝试使用多种方法来杀死您的进程:

多数尝试失败

完整说明

在我的测试中,所做的所有事情就是锁定Process Hacker,并将其转变为一个不可杀死的进程,但也许在某些情况下会起作用。


2
终结者已从Process Hacker中删除,并移至插件中。有一个论坛主题。维护者声称:“终结器是无用的……因为它没有比正常的终止功能更有效。” 有些人回答并不同意。
unforgettableidSupportsMonica'3

后来,dmex将Terminator移到了插件中。源代码在这里。在撰写本文时,有没有二进制。发行二进制文件后,它将被发布到dmex版本页面
unforgettableidSupportsMonica'3

1
我刚才提交了功能请求,要求提供Terminator的编译版本。现在,我想您可以使用任何版本低于2.39的Process Hacker。例如,您可以使用版本2.38,该版本在此处可用。
unforgettableidSupportsMonica'3

还有一个选择是附加了调试器,并且选择不终止的原因是这样。其他检测到并添加了分离调试器
Ghita

2

有时,该进程可能会在资源或线程等上被阻塞,然后退出或释放该进程,释放该进程并使其终止。这有点类似于您在资源管理器中删除(到回收站)正在使用的文件时,它实际上并没有消失并且似乎卡住了(没有立即返回使用中/锁定的错误),但是如果您退出在五秒钟内锁定的程序,文件突然消失。

我已经看到这种情况有时会发生,尤其是在带有弹出对话框或某种程度上被隐藏的程序中;找到一种消除对话框的方法可以使线程终止,从而使进程结束。

我怀疑随着多线程编程实践的增加(但仍然相对较新),至少在一段时间内,类似的事情会变得越来越普遍。


0

您使用的程序可能是在Windows Vista / 7之前开发的,并且与所做的更改不兼容。

最好的选择是找到存在此问题的程序的可执行文件,右键单击,转到属性,然后选择兼容性,最后选择Windows XP作为兼容模式。


0

以管理员身份启动CMD,并使用taskkill强制将其关闭。例:

taskkill / F yourprogram.exe

要么

taskkill / F / im yourprogram.exe

如果您对CMD taskkill语法感到困惑,请键入taskkill /?


1
欢迎来到超级用户!尽管这可能有助于解决问题,但并不能解释为什么和/或如何解决该问题。提供这种额外的环境将大大提高其长期教育价值。请编辑您的答案以添加解释,包括参数的用途以及适用的限制和假设。谢谢。
fixer1234 '18

错误:具有PID 16872的进程“ AutoHotkeyU64_UIA.exe”无法终止。原因:该任务没有正在运行的实例。
Shayan
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.