首页 > 代码库 > Nginx信号量

Nginx信号量

 Nginx中使用信号来控制Nginx停止、平滑重启,Nginx支持以下几种信号:

    1)TERM,INT快速关闭                                          SIGINT SIGTERM 即:NGX_TERMINATE_SIGNAL and SIGINT

    2)QUIT 从容关闭(优雅的关闭进程,即等请求结束后再关闭)    SIGQUIT 即 NGX_SHUTDOWN_SIGNAL

    3)HUP 平滑重启,重新加载配置文件                      SIGHUP 即NGX_RECONFIGURE_SIGNAL  (平滑重启,修改配置文件之后不用重启服务器。直接kill -PUT 进程号即可

    4)USR1 重新打开日志文件,在切割日志时用途较大        SIGUSR1 即NGX_REOPEN_SIGNAL

    5)USR2 平滑升级可执行程序                                   SIGUSR2 即NGX_CHANGEBIN_SIGNAL

    6)WINCH 从容关闭工作进程                                            即NGX_NOACCEPT_SIGNAL  

具体使用方法:

1、先查看nginx进程号

 ps aux | grep nginx

得到以下结果,

[root@VM_172_14_centos nginx]#ps aux | grep nginx
root     25916  0.0  0.0  20008   652 ?        Ss   20:42   0:00 nginx: master process ./nginx
nobody   25917  0.0  0.1  20452  1552 ?        S    20:42   0:00 nginx: worker process
root     28027  0.0  0.0   6440   704 pts/0    S+   21:14   0:00 grep nginx

可以看出nginx主进程为25916

2、信号量的操作

暴力的杀死nginx进程
kill -INT 25916

3、再次查看nginx进程是否存在

[root@VM_172_14_centos nginx]# ps aux | grep nginx
root     28136  0.0  0.0   6440   708 pts/0    S+   21:16   0:00 grep nginx

可以看到,nginx已经被杀了。

 

Nginx信号量