YYYYYYyyyyyy
V2EX  ›  问与答

Nginx worker 进程信号问题

  •  
  •   YYYYYYyyyyyy · Mar 25, 2018 · 2175 views
    This topic created in 3150 days ago, the information mentioned may be changed or developed.

    目前在看 nginx 源码,发现 master 在派生 worker 进程之前,把一大推信号给屏蔽了,我测试发现 worker 可以正常接收到信号例如 SIGINT SIGTERM 等信号,有哪位大佬知道么

    LoliconInside
    LoliconInside
    Mar 25, 2018 via Android
    1
    所以你想表达什么?
    YYYYYYyyyyyy
    YYYYYYyyyyyy
    OP
    Mar 26, 2018
    2
    子进程不是会继承父进程的信号屏蔽字吗,既然再派生 worker 进程之前把一大推信号给屏蔽了,worker 进程再派生之后理论上不是不会接收到 SIGINT SIGTERM 等信号?
    YYYYYYyyyyyy
    YYYYYYyyyyyy
    OP
    Mar 26, 2018
    3
    @LoliconInside 子进程不是会继承父进程的信号屏蔽字吗,既然再派生 worker 进程之前把一大推信号给屏蔽了,worker 进程再派生之后理论上不是不会接收到 SIGINT SIGTERM 等信号?
    YYYYYYyyyyyy
    YYYYYYyyyyyy
    OP
    Mar 26, 2018
    4
    ngx_worker_process_init 函数中 woker 进程会对继承而来的信号屏蔽字重新初始化:
    sigemptyset(&set);
    sigprocmask(SIG_SETMASK, &set, NULL)

    所以 worker 可以正常接收到信号例如 SIGINT SIGTERM 等信号
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   727 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 17:37 · PVG 01:37 · LAX 09:37 · JFK 12:37
    ♥ Do have faith in what you're doing.