Twemproxy源码走读(3):初始化流程

Twemproxy初始化过程比较简单,这里把Twemproxy初始化过程分成两部分:(1)读取运行选项;(2)运行前的初始化和准备;

(1)   读取运行选项

             读取各项参数的设置,比如是否后台运行(daemonize)、日志级别、日志文件、配置文件名称等信息。

            正如前一章(概述)里讲到的,Twemproxy使用了一个全局变量nc(类型为struct instance)保存所有的信息,包括选项配置信息。

(2)   运行前的初始化和准备(nc_pre_run);


图1. 运行前准备流程图

附上正式接收请求的运行前准备源码,逻辑清晰,都不需要注释:

static rstatus_t
nc_pre_run(struct instance *nci)
{
    rstatus_t status;

    status = log_init(nci->log_level, nci->log_filename);
    if (status != NC_OK) {
        return status;
    }   

    if (daemonize) {
        status = nc_daemonize(1);
        if (status != NC_OK) {
            return status;
        }   
    }   

    nci->pid = getpid();

    status = signal_init();
    if (status != NC_OK) {
        return status;
    }   

    if (nci->pid_filename) {
        status = nc_create_pidfile(nci);
        if (status != NC_OK) {
            return status;
        }   
    }   

    nc_print_run(nci);

    return NC_OK;
}




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章