我对操作系统(特别是 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
)。