目前在看 nginx 源码,发现 master 在派生 worker 进程之前,把一大推信号给屏蔽了,我测试发现 worker 可以正常接收到信号例如 SIGINT SIGTERM 等信号,有哪位大佬知道么
1
LoliconInside 2018-03-25 20:28:05 +08:00 via Android
所以你想表达什么?
|
2
YYYYYYyyyyyy OP 子进程不是会继承父进程的信号屏蔽字吗,既然再派生 worker 进程之前把一大推信号给屏蔽了,worker 进程再派生之后理论上不是不会接收到 SIGINT SIGTERM 等信号?
|
3
YYYYYYyyyyyy OP @LoliconInside 子进程不是会继承父进程的信号屏蔽字吗,既然再派生 worker 进程之前把一大推信号给屏蔽了,worker 进程再派生之后理论上不是不会接收到 SIGINT SIGTERM 等信号?
|
4
YYYYYYyyyyyy OP ngx_worker_process_init 函数中 woker 进程会对继承而来的信号屏蔽字重新初始化:
sigemptyset(&set); sigprocmask(SIG_SETMASK, &set, NULL) 所以 worker 可以正常接收到信号例如 SIGINT SIGTERM 等信号 |