nginx signal

     objs/nginx -h

 

      -s signal     : send signal to a master process: stop, quit, reopen, reload

 

      nginx 支持 stop ,quit , reopen ,reload 四种信号

 

      一 信号定义

   

 

二 信号初始化和添加

    在os/unix/ngx_processs.c中

    系统首先定义了所有的信号量

   

 

   在ngx_init_signal函数中,添加信号量

 

  

 

 

三 信号量的处理。

     我们看到上面定义的信号量都是使用同一个处理的函数: ngx_signal_handler, 在这个函数中,会根据进程的类型和信号量,设置变量:比如收到show_down 的信号的时候,把 ngx_quit = 1 ;而进程在看到这个变量是1的时候,就采取相应的操作。

 

 

 

四 信号的发送

    信号的发送需要一个新的进程来完成,主要下面三个步骤:

    1  解析参数,得到需要发送信号的名称

 

    2  打开工作进程的文件,读取进程的id

    

 

    3  遍历注册的信号量,根据信号的名称,得到对应的信号id, 利用kill函数,向进程发送信号。

 

 

 

 

 

 

 

 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值