可以有两个 init 进程吗?

可以有两个 init 进程吗?

我对操作系统(特别是 Linux)还不熟悉,这是我在这里的第一个问题

我想问一下,是否可以有两个 CMD = init (由ps - e命令给出)的进程。

我的笔记本电脑上有两个进程,CMD = init(id 为 1(这是默认值)和 29179)。我编写了一个 c++ 程序并创建了一个子进程,然后等待父进程退出(使子进程成为孤儿进程),然后检查子进程的 ppid,但它给出了 29179。

这是我的 C++ 程序:程序.cpp (在 Ideone 上,stdout 的所有输出都未打印,可能是这种情况。)

这是我的 C++ 程序的标准输出和ps -e我的笔记本电脑上的输出(仅允许 2 个链接): 输出

答案1

是的。有可能多种的 init流程。

在 Upstart 出现之前,只有一个init进程 (where PID = 1)。

现在,有了 Upstart,就有了原始init流程 (其中PID = 1)。

但是,当用户登录时,init会为该用户会话创建一个新进程。因此,这就是您看到第二个init进程的原因(其中PID != 1)。

相关内容