如何杀死“缺少实例”的任务?

Raf*_*ael 19 windows-7 kill process tasks

Spotify 首先杀死了自己,但“它的某些东西”一直挥之不去,这可以作为 PID 8664 的任务检测到,并且从 RAM 使用情况不时不断变化的事实来看——它“做了一些事情”。

现在,首先这个过程让我无法听音乐,因为 Spotify 由于这个实例而拒绝重启。

所以我试图摆脱这个过程。但是任务管理器和 taskkill 命令(当然是管理员)都没有成功。

taskkill 至少给了我一个“理由”,我将在这里翻译。

>taskkill /pid 8664 /f
>taskkill /im spotify.exe /f
Run Code Online (Sandbox Code Playgroud)

两者都给出了:

ERROR: The process "spotify.exe" with PID 8664 could not be terminated.
Reason: There is currently no instance executed by this task.
Run Code Online (Sandbox Code Playgroud)

我想知道这意味着什么,以及是否有另一种选择来终止这样的过程。

(Windows 7 专业版 64 位)

Ben*_*n N 12

该进程几乎可以肯定已经死了,即它不再执行任何代码。然而,直到它的每个句柄和它的每个线程都关闭时,有关它的簿记才会消失。您可能有另一个程序打开了这样的句柄(防病毒程序可能是罪魁祸首),或者它可能在死前向现在挂起的内核模式驱动程序发出了请求(我曾经有一个 CD 驱动器导致此很多)。进一步阅读:“为什么有些进程在被杀死后仍留在任务管理器中?” “为什么所有这些过程都在死亡边缘徘徊,是什么让它们活着?”

Spotify 拒绝再次启动,因为它看到自己的副本已经在运行,但它显然只是在寻找另一个名为spotify. (单实例应用程序本身就是拒绝服务,用 Raymond Chen 的话来说。)解决这个问题的最简单方法是重新启动计算机,因为这将清除所有句柄和簿记。

但是,如果您真的喜欢 Fix It Yourself TM,请下载Process Explorer,这是 Sysinternals 提供的非常有用的免费实用程序。(我没有从属关系。)运行它,无需安装,并接受 EULA。在 File 下,选择Show Details for All Processes;这会导致 Process Explorer 以管理员身份重新启动。然后,在 Find 下,选择Find Handle 或 DLL。输入僵尸(好吧,尸体)进程的名称,然后按搜索。

寻找句柄

Process 和 PID 列告诉您哪个进程拥有句柄。Type 列表示它是什么类型的东西;我们对ProcessThread类型感兴趣。Name 列告诉您句柄是什么。(许多进程拥有自己的句柄;如果拥有的应用程序在内核模式下没有问题地结束,这些句柄就会消失。)

危险:关闭应用程序真正需要的句柄是使应用程序崩溃的好方法。如果可能,请退出拥有句柄的应用程序。但如果你不能,或者你只是想用锤子敲打东西......

单击该搜索窗口中的条目以打开句柄窗格。右键单击该窗格中新突出显示的条目,然后选择“关闭句柄”以使其不存在。

关闭所有句柄后,该过程将消失。

  • 我关闭了所有线程的所有处理,但问题仍然存在。 (2认同)