Nginx是一个多进程程序,进程之间进行通讯可以使用共享内存和信号等。做进程管理时,只能使用信号。
能够接受命令的有三者:
Master进程
Work进程
nginx命令行
Master进程
可以监控Worker进程发来的CHLD信号。
管理worker进程可以接受的命令:
TERM和INT可以立刻关闭进程;
QUIT可以优雅地关闭进程,不要给用户发送立刻结束的报文,比如RST;
HUP表示重新载入配置文件;
USER1能够打开日志,并且切割日志文件;
USR2平滑升级,会重新开启对应的Master进程和Worker进程,整个系统中将会有两个master进程,并且新的master进程的PID会被记录在nginx.pid文件,而之前的旧的master进程PID会被记录在nginx.pid.oldbin文件中,接着再次发送QUIT信号给旧的master进程,让其处理完请求后再进行关闭;
WINCH只会关闭Worker进程。
Worker进程
Worker能够接收到的信号:TERM和INT可以立刻关闭进程;QUIT可以优雅地关闭进程; USR1重新打开日志文件; WINCH关闭Worker进程。
nginx命令行
reload相当于HUP;
reopen相当于USR1;
stop相当于TERM;
quit相当于QUIT。
此文章为10月Day 29学习笔记,内容来源于极客时间《Nginx 核心知识 150 讲》