NGINX----源码阅读---ngx_master_process_cycle

1.一些变量的声明,巴拉巴拉;

2.sigemptyset(&set);

这个函数set的类型是sigset_t,其实就是一个结果体,成员为数组,来保存各种信号。

1 typedef struct {
2 unsigned long sig[_NSIG_WORDS];
3 } sigset_t
View Code

3.初始化信号容器后,添加信号

sigaddset(&set, SIGCHLD)......

添加的信号有:具体意义暂时不讨论

SIGCHLD SIGALRM SIGIO SIGINT NGX_RECONFIGURE_SIGNAL NGX_REOPEN_SIGNAL NGX_NOACCEPT_SIGNAL NGX_TERMINATE_SIGNALNGX_SHUTDOWN_SIGNAL NGX_CHANGEBIN_SIGNAL 

4.sigprocmask(SIG_BLOCK, &set, NULL) 将信号添加到进程屏蔽

5.sigemptyset(&set);

清空信号集

6.将进程名称和main函数的入参存储起来,放哪里后边说。

7.修改进程的名称title,具体讲解推荐这个博客。

http://blog.csdn.net/fzy0201/article/details/21121547

8.ccf=ngx_get_conf(cycle->conf_ctx, ngx_core_module);

获取ngx_core_module模块对应的配置

9.ngx_start_worker_processes(cycle, ccf->worker_processes,NGX_PROCESS_RESPAWN);

 启动worker进程。

10.加入流程图

原文地址:https://www.cnblogs.com/wangtengxiang/p/6409234.html