nginx信号量
Nginx的信号控制:
选项 | 作用 |
---|---|
TERM, INT | 直接杀死进程(粗暴) |
QUIT | 优雅的关闭进程,即等请求结束后再关闭 |
HUP | 改变配置文件,平滑的重读配置文件 |
USR1 | 重读日志,在日志按月/日分割时有用 |
USR2 | 平滑的升级 |
WINCH | 优雅关闭旧的进程(配合USR2来进行升级) |
具体语法:
Kill -信号选项 nginx的主进程号
Kill -HUP 4873
Kill -信号控制cat /xxx/path/log/nginx.pid
Kil; -USR1cat /xxx/path/log/nginx.pid
测试HUP的方法:
- 修改nginx配置文件,让nginx的默认读取的文件修改为别的文件(test.html)
- index.html和test.html文件都使用js将自身不断的刷新,
- 执行 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`
(注意:这里的引号是单反引号)