Skip to main content

Nginx 控制分为2种,一种是用nginx自带的命令控制(有一些命令其实是发送信号到主进程,也是用的linux信号控制),另一种是用linux的信号控制。在平时维护的时候,我通常都是用nginx自带的命令控制,后者因为需要去查询pid,有点繁琐。

Nginx自带的命令控制

-g的参数:http://nginx.org/en/docs/ngx_core_module.html

Nginx命令示例

用信号控制

主进程id默认位置:/usr/local/nginx/logs/nginx.pid

可以直接打开这个文件查看进程号,也可以通过如下命令查询

注意,你要使用master进程号,worker进程号不用关心,子进程由主进程管理

  • TERM, INT: 立刻停止服务
  • QUIT: 处理完当前的请求后停止服务
  • HUP: 重新加载配置文件,根据新的配置文件启动新的进程,处理完当前的请求后停止旧的服务
  • USR1: 重新打开log文件
  • USR2: 升级
  • WINCH: 关闭子进程(在处理完请求之后进行)

另外子进程管理,支持: TERM, INT, QUIT, USR1,虽然一般情况不需要自己来管理子进程。

信号控制示例