内容简介:所属分类: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):信号》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- 树莓派基础-模拟信号和数字信号的区别
- xenomai内核解析之信号signal(二)---xenomai信号处理机制
- 没信号也可救你命:苹果新专利让iPhone无信号也可充当紧急信标
- 信号量
- flask---信号
- Python信号处理
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
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》 这本书的介绍吧!