Windows机器上的程序偶尔会疯狂地挂起。所以我将调用任务管理器并点击“End Process”按钮。然而,这并不总是有效;如果我尝试足够多的次数,那么它通常最终会死亡,但我真的希望能够立即杀死它。在Linux上,我可以杀死-9来保证进程会死亡。

这也可以用于编写批处理脚本,而编写批处理脚本就是编程。

Windows中是否有一些程序或命令总是会杀死进程?一个免费的第三方应用程序就可以了,尽管我更希望能够在我第一次坐下来的机器上做到这一点。


当前回答

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

在XP或Windows 2003上,你可以使用ntsd来完成这个任务:

ntsd -pn myapp.exe

安全运输科会打开一个新窗口。只需在窗口中输入'q'退出调试器并取出进程。

我知道,即使在任务管理器似乎无法终止进程时,这种方法也能起作用。

不幸的是,ntsd已经从Vista中删除了,你必须安装(免费的)windows调试工具来获得合适的调试器。

其他回答

进程选项卡上的“结束进程”调用TerminateProcess,这是Windows知道的终止进程的最终极方式。

如果它没有消失,它目前被锁定在等待一些内核资源(可能是一个有bug的驱动程序),并且没有什么(除了重新启动)可以让进程消失。

看看这个来自wayback的博客条目:http://blogs.technet.com/markrussinovich/archive/2005/08/17/unkillable-processes.aspx

基于Unix的系统,如Linux,也有这样的问题,如果进程处于所谓的“不可中断睡眠”(由top和ps显示为状态D),那么它们可以在kill -9时存活,此时进程睡眠得非常好,以至于它们不能处理传入信号(这是kill所做的-发送信号)。

通常情况下,不间断睡眠不会持续很长时间,但在Windows下,损坏的驱动程序或损坏的用户空间程序(没有exec的vfork)可能会永远睡在D中。

当ntsd访问被拒绝时,尝试:

ZeroWave被设计成一个简单的工具,可以为任何类型的进程提供多级终止。

ZeroWave也是一个易于使用的程序,由于其简单的安装和非常友好的图形界面。

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

ZeroWave似乎不能杀死avp.exe

进程黑客有许多杀死进程的方法。

(右键单击进程,然后转到Miscellaneous->终结者。)

我也有这个问题,下面是我解决它的方法。

1/打开«任务管理器»

2/在列表中找到应用程序名称

3/一旦找到,右键单击它的名称,然后单击«properties»

4/在属性界面中,单击«security«

5/单击«edit»更改权限

6/«拒绝»所有用户的所有权限,单击«应用»然后«确定»

7/单击«高级»进行特殊权限设置

8/删除所有用户的权限

9/点击«apply»,然后«ok»

10/再次点击«apply»然后«ok»

11/你现在可以在任务管理器上杀死进程,以及卸载你想要的应用程序。

taskkill /im myprocess.exe /f

“/f”代表“力”。 如果你知道PID,那么你可以这样指定:

taskkill /pid 1234 /f

还有很多其他选项,只要输入taskkill /?对所有人来说。"/t"选项杀死一个进程和所有子进程;这可能对你有用。