nginx短篇(9):信号

  • A+
所属分类:Nginx  运维技术

  

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

 

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

 

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

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

 

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

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

 

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

 

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

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

 

 

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

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

目前评论:8   其中:访客  7   博主  1

    • avatar 六神花露水 0

      老哥总结的不错,一看就是自己的心路历程。比网上那些乱七八糟的文章好多了。条例清楚逻辑清晰。NGINX 以前都看过,总是觉得不成体系。有些细节问题一知半解的,看了老哥的文章顿时清楚了。 期待后面的缓存和代理。 好久都没跟新nginx了。 等一波输出。 :cool:

        • avatar 朱双印 Admin

          @六神花露水 哈哈我尽力,现在状态正处于git,切换到nginx需要点时间,而且最近事情特别多,所以输出比较慢,谢谢兄弟关注,加油~

        • avatar 老胡 0

          nginx应该还有很多内容吧

          • avatar linfeng 1

            谢谢老师提供如此简明的教程。不光是Nginx,其它教程也都堪称精品之作。之前是只知其然,不知其所以然,看了老师的教程很多东西豁然开朗。期待更新中。。。。。

            • avatar N0mansky 0

              这篇文章咋归类到ansible了

              • avatar 学习者 1

                博主您好,您写的内容对我帮助非常大,很多内容分析透彻,举例容易理解,非常感谢博主的付出。这里有个小小的建议给您:1、每次点击分页码都会以新的tab页展示,体验很不好 ;2、每块知识点都是按时间排序的,往往需要翻至最后一页开始看起很是麻烦,希望能按内容的顺序排序

                • avatar 怒风 3

                  已关注朱老师的微信公众号

                  • avatar 张学生 2

                    印哥 ansible还有多少写完啊