今天有被windows给坑了一把,有个几个进程死活结束不掉,还遇到提示:“没有此任务的实例在运行”,所以做个笔记。

以名称为xxx.exePID1024为例,正常来说,杀掉一个进程命令如下:

taskkill /F /PID 1024

如果杀不掉,可能是因为有父进程影响,需要先杀父进程,而获取父进程的命令为:

wmic process where ProcessId=1024 get ParentProcessId

如果不知道子进程的PID,但是知道进程名字,也可以试试这个:

wmic process where name="xxx.exe" call terminate

总之找到父进程PID后,再用第一行命令去杀父进程才是正解。

另外补充一下,如果不知道PID,想用进程名作为参数,可以用这条:

taskkill /IM "xxx.exe" /F

如果你喜欢用PowerShell,还可以用下面两个命令:

Stop-Process -Name "xxx.exe" -Force
Stop-Process -ID 1024 -Force

分别对应了用名称或者PID杀进程。


后来我又遇到一种情况,即使用上面的方式还是不行。无意中发现可以这样:

CleanShot 2022-04-11 at 17.28.53

在任务管理器,选中杀不掉的进程,右键->分析等待链

CleanShot 2022-04-11 at 17.29.11

然后可以把它列出的在等待链中的进程进行结束,就可以杀死之前不能杀死的进程了。