首页 文章

真的在Windows中杀死一个进程

提问于
浏览
344

偶尔,Windows机器上的程序会发疯,只是挂起 . 所以我总是在工作;如果我尝试了足够多次,那么'll usually die eventually, but I' d真的很想能够立即杀死它 . 在Linux上我可以只是 kill -9 来保证一个进程会死掉 .

这也可用于编写批处理脚本,编写批处理脚本是编程 .

Is there some 程序或 command that comes with Windows that will always kill a process? 免费的第三方应用程序没问题,但我更愿意能够在我第一次坐下来的机器上这样做 .

8 回答

  • 22

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

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

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

    ZeroWave有三种终止模式,“INSANE”模式可以终止任何可以在Windows上运行的进程 .

    似乎ZeroWave无法杀死avp.exe

  • 306

    进程选项卡上的"End Process"调用 TerminateProcess 这是Windows知道杀死进程的最终方式 .

    如果它没有消失,它当前锁定等待一些内核资源(可能是一个有缺陷的驱动程序),并且没有任何东西(没有重启)你可以做的让这个过程消失 .

    在以下情况下看看这个博回条目:http://blogs.technet.com/markrussinovich/archive/2005/08/17/unkillable-processes.aspx

    像Linux这样的基于Unix的系统也存在这样的问题,即如果它们处于"Uninterruptible sleep"(由top和ps显示为状态 D ),则进程可以在 kill -9 中存活,此时进程处于睡眠状态以至于无法处理传入的信号(这是 kill 的作用 - 发送信号) .

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

  • 6
    taskkill /im myprocess.exe /f
    

    “/ f”代表“强制” . 如果你知道PID,那么你可以指定,如:

    taskkill /pid 1234 /f
    

    还有很多其他选项,只需键入taskkill /?对于他们所有人 . “/ t”选项可以杀死进程和任何子进程;这可能对你有用 .

  • 0

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

    (右键单击该进程,然后转到Miscellaneous-> Terminator . )

  • 15

    从sysinternals(现在是Microsoft)获取进程资源管理器

    Process Explorer - Windows Sysinternals | Microsoft Docs

  • 19

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

    taskkill /im processname.exe /f
    

    如果有错误说,

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

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

  • 36

    一个效果很好的技巧是附加一个调试器,然后退出调试器 .

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

    ntsd -pn myapp.exe
    

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

    即使任务管理器似乎无法杀死进程,我也知道这可以工作 .

    不幸的是,ntsd已从Vista中删除,你必须安装(免费)debbugging tools for windows以获得合适的调试器 .

  • 214

    设置AT命令以将任务管理器或进程资源管理器作为SYSTEM运行 .

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

    如果进程资源管理器位于您的根C驱动器中,那么这将打开它作为SYSTEM并且您可以在不获取任何访问被拒绝错误的情况下终止任何进程 . 将此设置为将来的一分钟,然后它会弹出给你 .

相关问题