Linux内核上PID 1的文件描述符0,1和2的存在?

时间:2015-01-28 02:24:50

标签: linux linux-kernel

Linux内核始终是否为使用init=...或隐式/sbin/init/etc/init启动时传递的PID 1进程提供文件描述符0,1和2 ,/bin/init/bin/sh)?它们是指系统控制台/dev/console吗?如果init上没有提供/dev但是必须由init系统设置会发生什么?

1 个答案:

答案 0 :(得分:1)

他们被kernel_init_freeable迷上了控制台。控制台将直接打开并复制,而无需通过/dev

    /* Open the /dev/console on the rootfs, this should never fail */
    if (sys_open((const char __user *) "/dev/console", O_RDWR, 0) < 0)
            pr_err("Warning: unable to open an initial console.\n");

    (void) sys_dup(0);
    (void) sys_dup(0);