我多次列出了正在运行的进程,发现其中大多数是explorer.exe的子进程,而explorer.exe的父进程似乎并未运行 为什么这样?
答案 0 :(得分:1)
用户登录后,资源管理器进程由userinit进程创建。 Userinit对用户环境进行一些初始化(例如,运行登录脚本和应用组策略),然后在注册表中查看Shell值,并创建一个进程来运行系统定义的Shell(默认情况下为Explorer.exe)。然后Userinit退出。这就是为什么Explorer.exe在没有父级的情况下由各种进程浏览器显示的原因-它的父级已退出。 -参考 Wiki File_Explorer
从这张图片中可以看到,explorer.exe是由userinit.exe启动的,而userinit.exe最后退出了,因此explorer.exe没有父进程。
因为Windows使用explorer.exe来启动启动进程,所以所有正常进程都是explorer.exe的子进程,除非有一个孩子死了而没有一个孩子死了。
由于所有新程序都是由在用户桌面上运行的用户启动的,因此它们都是资源管理器的子级。