c-什么是Linux内核中真正的盛大祖先进程



当我试图找到C中某个进程应用程序的所有根,并调用我进行的自定义系统调用时,该调用使用task_struct*的信息返回所有进程的数组,我发现任务swapper/0是通过父指针指向自己的任务(即swapper/0->parent==swaper/0)。我的问题是:在用户空间中运行的任何进程中,哪一个是真正的grand父进程?它是swapper/0还是它前面的任务(或swapper/0的子任务)?即swapper/0是一个真正的任务,还是仅仅是遍历父链表的结束标志?

顺便说一句,这个问题扩展了我在这篇文章中提出的问题:C中遍历内核空间中祖先的结束标志。

init(pid 1)是所有其他用户进程的祖先进程。init负责启动运行系统的所有用户级进程。此外,其父进程退出的进程由init继承(即init成为其父进程)。

最新更新