nginx 主要是通过信号来控制的,同时nginx也包含主进程和工作者进程,主进程随着nginx的开启而开启,工作者进程则是根据配置而来。
1 主进程的支持的信号集合有如下:
TERM, INT 快速关闭
QUIT 主进程等待事件请求结束,然后关闭
HUP 改变配置,与改变的时区一致,以改变后的配置文件开启一个新的工作进程,然后逐步关闭老的工作进 程。
USR1 重新打开配置文件
USR2 更新执行文件
WINCH 逐步关闭工作者进程。
2 独立的工作者进程也可以通过信号来进行控制,工作者进程支持的信号集包含如下:
QUIT 主进程等待事件请求结束,然后关闭
HUP 改变配置,与改变的时区一致,以改变后的配置文件开启一个新的工作进程,然后逐步关闭老的工作进 程。
USR1 重新打开配置文件
TERM, INT | fast shutdown |
QUIT | graceful shutdown |
USR1 | re-opening log files |
WINCH | abnormal termination for debugging (requires debug_points to be enabled) |
对于 nginx的操作命令有如下:stop quit reload reopen
nginx命令的基本形式: nginx -s signal
1 nginx -s stop
快速关闭nginx。
2 nginx -s quit
等待工作进程完成现有的请求,然后关闭nginx。
3 nginx -s reload
重新加载配置文件,然后重启nginx
4 nginx -s reopen
重新打开日志文件
除了上述几种方法,还可以通过unix的kill命令来结束nginx进程, 例如:kill -s QUIT pid.
nginx的pid写在专有的pid文件里面。