使用信号管理Nginx的父子进程

Nginx是一个多进程程序,进程之间进行通讯可以使用共享内存和信号等。做进程管理时,只能使用信号。
能够接受命令的有三者:

Master进程
Work进程
nginx命令行

Master进程

可以监控Worker进程发来的CHLD信号。
管理worker进程可以接受的命令:

TERMINT可以立刻关闭进程;
QUIT可以优雅地关闭进程,不要给用户发送立刻结束的报文,比如RST
HUP表示重新载入配置文件;
USER1能够打开日志,并且切割日志文件;
USR2平滑升级,会重新开启对应的Master进程和Worker进程,整个系统中将会有两个master进程,并且新的master进程的PID会被记录在nginx.pid文件,而之前的旧的master进程PID会被记录在nginx.pid.oldbin文件中,接着再次发送QUIT信号给旧的master进程,让其处理完请求后再进行关闭;
WINCH只会关闭Worker进程。

Worker进程

Worker能够接收到的信号:TERMINT可以立刻关闭进程;QUIT可以优雅地关闭进程; USR1重新打开日志文件; WINCH关闭Worker进程。

nginx命令行

reload相当于HUP
reopen相当于USR1
stop相当于TERM
quit相当于QUIT

此文章为10月Day 29学习笔记,内容来源于极客时间《Nginx 核心知识 150 讲》

你可能感兴趣的:(Nginx,核心知识,150,讲,nginx,网络)