Nginx与信号
一、nginx的进程架构
nginx的很多命令,本质都是进程向master进程发信息。
二、nginx的信号的使用
2.1 master 进程可以接受的信号
第一类:接受work的CHLD
信号,来启动意外终止的work进程
因为master进程会启动work进程,master管理work进程的方式是,work进程有没有向master进程发送CHLD
信号。
linux系统规定,当work进程意外终止时,会向master进程发送
CHLD
信号。
第二类:接收信号管理work进程
-
TERM,INT 表示立刻停止nginx进程
-
QUIT 表示优雅的停止nginx进程
-
HUP 表示重载配置文件
-
USR1表示重新打开日志文件,做日志文件的切割
上面四个,可以使用nginx命令行,直接向master发送命令。下面两个只能通过linux的
kill
直接向master发送信号。下面这两个信号针对热部署使用。 -
USR2
-
WINCH
kill USR2 [master_pid] kill WINCH [master_pid]
2.2 work进程可以接受的信息
因为work进程是由master进程管理的,所以我们通常不向work进程直接发送信息。
- TERM,INT
- QUIT
- USR1
- WINCH
2.3 nginx命令行
执行nginx命令行,其实也是执行的发送信号命令,下面是nginx命令与信号的对应关系:
- reload : HUP
- reopen : USR1
- stop: TERM
- quit: QUIT