rgw main

说明关闭标准的错误输出,而使用标准输出替换.这是因为FCGX 将信息输出到了STDOUT.

参数:

默认参数 –debug-rgw 和 –keystring , 如果 argv 中具备输入参数, 则通过argv_to_vec替换这些默认参数.

函数 argv_to_vec 和 env_to_vec 表示将环境变量参数和输入参数都输出到args 中.

根据输入参数和默认输入参数,通过函数global_pre_init进行初始化, 在该函数中生成对下面重要的全局变量进行初始化操作. 这个函数分析会放在以后的章节中讨论,本身的几个参数也非常的重要.花费一个章节,来讨论该函数.

CINIT_FLAG_UNPRIVILEGED_DAEMON_DEFAULTS : 默认类型, 无特权. 这个是和下面的几个对应而言的.

 

通过配置g_conf->rgw_frontens 获取到frontends , 该容器中存放frontend的类型.

如果这个容器为空了, 则将fastcgi存放到该容器中.

该段是对前端进行信息的初始化,并将其存放在fe_map容器中,Civetweb因为其本身是内置在Radosgw中的, 所以需要加上一些特殊的处理. 端口以及flags

获取到frontend后,继续初始化操作.

如果参数中具有-h 或者 –help, 则usage()后退出.

该函数并没有内容.

 将该用做成daemon的模式.以便后台运行,

初始化超时锁,当应用初始化操时时会返回退出.

进入初始化操作.

Enable_perf_counter() 初始化计数统计.

Common_init_finish() 初始化加密类 以及 service_thread . (admin_sock 的内容被接收.)

Rgw_tools_init 初始化ext_mime_type表

Rgw_init_resolver 初始化RGWSolver类,该类用于解析host/cname后续专门章节解析RGWResolver类.

对于Curl 以及FCGX_Init的初始化,调用是外部的.so的API.

原文地址:https://www.cnblogs.com/damizhou/p/6232789.html