本文共 739 字,大约阅读时间需要 2 分钟。
Nginx可以使用信号来控制主进程,nginx启动后默认会将进程号写入nginx.pid中。
Nginx主进程支持的信号:
TERM,INT 快速关闭
QUIT 从容关闭
HUP 重载配置
USR1 重新打开日志文件
USR2 平滑升级可执行程序
WINCH 从容关闭工作进程
Nginx工作进程支持的信号:
QUIT 从容关闭
USR1 重新打开日志文件
Nginx工作进程支持的信号
使用方法:
-
等待所有请求结束后关闭服务
kill -QUIT NGINX主进程号
-
立刻关闭主进程
kill -TERM NGINX主进程号
-
重新加载新的配置文件
kill -HUP NGINX主进程号
-
平滑升级二进制文件
kill -USR2 NGINX主进程号
重点:平滑升级二进制文件的内部流程
-
将新的二进制文件nginx替换掉旧的
-
当执行
kill -USR2 NGINX主进程号
后,主进程会将nginx.pid重命名为nginx.pid.oldbin -
然后执行新的nginx二进制文件,启动新的主进程和工作进程
-
此时新旧nginx同时在运行,要停用旧的nginx
-
执行
kill -WINCH 旧的NGINX主进程号
,从容停止旧的nginx主进程和工作进程 -
此时因旧进程还未关闭监听套接字,仍可恢复旧服务
(1) 执行
kill -HUP 旧的NGINX主进程号
,将在不重载配置的情况下启动旧进程(2) 执行
kill -QUIT 新的NGINX主进程号
,从容关闭新工作进程(3) 执行
kill -TERM 新的NGINX主进程号
,关闭新主进程(4) 此时nginx.pid.oldbin会改为nginx.pid
-
若不打算恢复旧服务,则执行
kill -QUIT 旧的NGINX主进程号
转载地址:https://pandora.blog.csdn.net/article/details/100981691 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!