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


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


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


ngx_write_channel原型:


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