android init.rc中service console option的含义、作用

android init.rc中service console option的含义、作用

 

void service_start(struct service *svc, const char *dynamic_args)
    needs_console = (svc->flags & SVC_CONSOLE) ? 1 : 0;
    /*如果是需要控制台环境但是没有控制台,设置SVC_DISABLED标志位后返回*/
    if (needs_console && (!have_console)) { 
        ERROR("service ‘%s‘ requires console\n", svc->name);
        svc->flags |= SVC_DISABLED;
        return;
    }

        if (needs_console) {
            /* 使进程独立开来,摆脱源会话、源进程组、源控制终端,使其成为一个新的进程组长 */
            setsid();
            open_console();
        } else {
            zap_stdio();
        }