结束进程和结束进程树的区别

8

在Windows任务管理器中,终止进程和终止进程树有什么区别?终止进程树会杀死父进程下的所有子进程吗?


Windows不维护进程树,因此任何声称可以杀死“进程树”的工具都是在说谎。它实际上是通过列出所有进程并将子进程链接到父进程来构建和杀死进程树。但是,如果父进程已经退出,则该分支的树就变成了孤儿,您将无法杀死它。相比之下,维护进程树的操作系统会在父进程退出后立即将子分支嫁接到祖父母上。 - Eryk Sun
Windows 8+维护嵌套的作业对象而不是进程树。即使在Windows 8之前,一个进程也只能在一个作业中,但仍可以通过精心设计将作业对象链接成树形结构。每个作业都可以配置为在关闭时自动终止其进程(即当作业所有者退出、崩溃或被终止时)。通过这种设计,如果作业树的基础被终止,它会级联终止所有分支。 - Eryk Sun
2个回答

4

8
它不会关闭进程正在使用的所有其他服务和应用程序,只会关闭它所生成的服务和应用程序。 - CodyBugstein

0

进程管理器

为了更好地理解,您可以使用类似进程管理器的工具来查看“树”视图。不幸的是,任务管理器不显示子进程或公开该信息(据我所知和研究)。它公开了这个功能,但让你变得盲目。

示例

Code.exe

例如,如果我在顶层的Code.exe上运行“kill process tree”,它也会杀死子进程。如果我在较低级别的Code.exe上运行“kill process tree”,则其上方和旁边的其他进程将继续运行,如果其中任何一个是进程监视器,可以重新生成子进程,那么它可能会重新启动那些被杀死的进程。

Screenshot of Code.exe child processes

Discord.exe

这里有一个有趣的例子,可能会产生您最初没有注意到的意外后果。如果我杀死顶层的Discord.exe进程树,它也会杀死我的chrome.exe进程。这很可能是因为在Discord中点击了一个链接,然后启动了浏览器,因此它是父进程。

Screenshot of Discord.exe child processes


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接