Nginx worker 进程信号问题

2018-03-25 17:50:30 +08:00
 YYYYYYyyyyyy

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

1279 次点击
所在节点    问与答
4 条回复
LoliconInside
2018-03-25 20:28:05 +08:00
所以你想表达什么?
YYYYYYyyyyyy
2018-03-26 10:14:30 +08:00
子进程不是会继承父进程的信号屏蔽字吗,既然再派生 worker 进程之前把一大推信号给屏蔽了,worker 进程再派生之后理论上不是不会接收到 SIGINT SIGTERM 等信号?
YYYYYYyyyyyy
2018-03-26 10:14:40 +08:00
@LoliconInside 子进程不是会继承父进程的信号屏蔽字吗,既然再派生 worker 进程之前把一大推信号给屏蔽了,worker 进程再派生之后理论上不是不会接收到 SIGINT SIGTERM 等信号?
YYYYYYyyyyyy
2018-03-26 11:20:05 +08:00
ngx_worker_process_init 函数中 woker 进程会对继承而来的信号屏蔽字重新初始化:
sigemptyset(&set);
sigprocmask(SIG_SETMASK, &set, NULL)

所以 worker 可以正常接收到信号例如 SIGINT SIGTERM 等信号

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/441258

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX