Skip to main content

nginx信号量

Nginx的信号控制:

选项作用
TERM, INT直接杀死进程(粗暴)
QUIT优雅的关闭进程,即等请求结束后再关闭
HUP改变配置文件,平滑的重读配置文件
USR1重读日志,在日志按月/日分割时有用
USR2平滑的升级
WINCH优雅关闭旧的进程(配合USR2来进行升级)

具体语法:

Kill -信号选项 nginx的主进程号
Kill -HUP 4873
Kill -信号控制 cat /xxx/path/log/nginx.pid
Kil; -USR1 cat /xxx/path/log/nginx.pid

测试HUP的方法:

  1. 修改nginx配置文件,让nginx的默认读取的文件修改为别的文件(test.html)
  2. index.html和test.html文件都使用js将自身不断的刷新,
  3. 执行 kill -HUP xx(nginx master pid),观察浏览器的情况

注意:当执行上面的kill命令时,浏览器不会立刻的看到效果,因为js程序在不断的刷新页面,需要等几秒钟才能看到nginx配置文件修改的效果

测试USR1:

Linux文件系统在向文件写数据的时候,不是根据文件名来做标识的,而是根据inode,就是如果将nginx的日志文件access.log改了别的名字(access.log.bak),nginx日志还是会写到access.log.bak文件中,如果使用kill USR1 xx(nginx master pid),nginx会重新的生成新的日志文件,而不再将日志数据写入到access.log.bak文件中

技巧:

在使用kill命令时,如果想将pid用别的方式代替,其实在logs目录下,nginx.pid就是存放nginx master pid, 所以

kill -HUP nginx master pid  ==  kill -HUP  `cat nginx.pid`

(注意:这里的引号是单反引号)