nginx短篇(9):信号

栏目: 服务器 · Nginx · 发布时间: 6年前

内容简介:所属分类:Ansible
  • A+

所属分类:Ansible 运维技术

博主会将与Nginx有关的知识点总结到"nginx短篇系列"文章中,如果你对nginx不是特别了解,请 按照顺序 阅读"nginx短篇系列",以便站在前文的基础上理解新的知识点。

近期会比较忙,更新时间可能不会特别稳定,三四天才来看一看也有可能,还是请大家关注公众号吧,如果有更新会收到通知。

通过前文章我们已经知道,当我们需要让nginx重新打开日志文件时,需要使用kill命令向nginx的master进程发送USR1信号,或者执行"nginx -s reopen"命令,它们的效果是完全一样的,那么你可能会问,"nginx -s"命令除了能够使用reopen,不是还能够使用reload、stop和quit么,那么reload、stop、quit有没有完全等效的信号呢?还真有,这些信号的对应关系如下:

reopen对应USR1信号
reload对应HUP信号
stop对应TERM信号或者INT信号
quit对应QUIT信号

通过上述对应关系我们可以推断出,"nginx -s reload"命令与"kill -HUP NginxMasterPid"命令的作用是一样的。

之前说过,master进程是负责管理worker进程的,其实,当我们向master进程发送信号时,master进程就会根据捕捉到的信号来管理worker进程,那么,我们都能向master进程发送哪些信号呢?我们能向master进程发送如下信号:

TERM或者INT:表示立即停止nginx
QUIT:表示优雅的停止nginx
HUP:重载配置文件
USR1:重新打开日志文件
USR2:热升级nginx程序
WINCH:优雅的关闭相应的worker进程

可以看到,我们通常可以手动的向master进程发送上述信号,而前四种信号又可以使用"nginx -s"命令代替,至于USR2信号和WINCH信号,就只能使用kill命令发送了,USR2信号和WINCH信号在热部署Nginx时(平滑升级编译安装的nginx时)会用到,等总结相关文章时再行介绍吧。

其实,不仅master进程可以直接接收信号,work进程也可以直接接收信号,但是通常情况下,我们不应该手动的向worker进程直接发送信号,而是应该通过master进程来管理他们,虽然我们不应该向work进程发送信号,但是此处还是列出worker进程可以接收到的信号,以便了解它们,worker进程可以接收的信号如下:

TERM信号或INT信号
QUIT信号
USR1信号
WINCH信号

如果因为某些原因,worker进程意外终止了,master进程会创建一个新的worker进程,以保证有对应的worker进程可以使用,当子进程worker进程终止时,会向master父进程发送CHLD信号,当master进程收到CHLD信号以后,就会知道对应的worker进程退出了,此时,master进程会创建一个新的worker进程,演示过程如下:

假设当前正常情况下,master进程号为12609,两个worker进程的进程号为12610、12611
# ps -ef | grep nginx
root      12609      1  0 17:17 ?        00:00:00 nginx: master process nginx
nobody    12610  12609  0 17:17 ?        00:00:00 nginx: worker process
nobody    12611  12609  0 17:17 ?        00:00:00 nginx: worker process
root      12613   9361  0 17:17 pts/1    00:00:00 grep --color=auto nginx
 
使用kill命令终止pid为12610的worker进程
# kill -INT 12610
 
再次查看nginx进程,会发现master进程自动创建了一个pid为12614的worker进程。
# ps -ef | grep nginx
root      12609      1  0 17:17 ?        00:00:00 nginx: master process nginx
nobody    12611  12609  0 17:17 ?        00:00:00 nginx: worker process
nobody    12614  12609  0 17:17 ?        00:00:00 nginx: worker process
root      12624   9361  0 17:17 pts/1    00:00:00 grep --color=auto nginx

通过上述描述,master进程和worker进程的关系是否更加清晰了呢?

我的微信公众号

关注"实用运维笔记"微信公众号,当博客中有新文章时,可第一时间得知哦~


以上所述就是小编给大家介绍的《nginx短篇(9):信号》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Algorithms for Image Processing and Computer Vision

Algorithms for Image Processing and Computer Vision

Parker, J. R. / 2010-12 / 687.00元

A cookbook of algorithms for common image processing applications Thanks to advances in computer hardware and software, algorithms have been developed that support sophisticated image processing with......一起来看看 《Algorithms for Image Processing and Computer Vision》 这本书的介绍吧!

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

URL 编码/解码
URL 编码/解码

URL 编码/解码

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具