天天看點

Nginx學習筆記(七) 建立子程序Nginx建立子程序

  ngx_start_worker_processes位于nginx_process_cycle.c中,主要的工作是建立子程序。

  在nginx中,master程序和worker程序是通過socketpair函數建立一對socket來實作,父程序與子程序之間的通信的。而這對socket被儲存在程序結構體ngx_process中的channel[2]數組中,其中channel[0]為父程序的socket,channel[1]為子程序的socket。

Nginx學習筆記(七) 建立子程式Nginx建立子程式
Nginx學習筆記(七) 建立子程式Nginx建立子程式

  具體分析一下建立子程序的函數,也就是分析ngs_spawn_process:

Nginx學習筆記(七) 建立子程式Nginx建立子程式
Nginx學習筆記(七) 建立子程式Nginx建立子程式

  接下來,看看nginx是如何在程序間進行通信的,ngx_pass_open_channel函數:

Nginx學習筆記(七) 建立子程式Nginx建立子程式
Nginx學習筆記(七) 建立子程式Nginx建立子程式

   ngx_write_channel原型:

Nginx學習筆記(七) 建立子程式Nginx建立子程式
Nginx學習筆記(七) 建立子程式Nginx建立子程式
Nginx學習筆記(七) 建立子程式Nginx建立子程式

繼續閱讀