Nginx系列p5:进程管理(信号)
通过上图我们可以看到:信号与命令行的关系,下面我们来简单总结一下上述命令的作用:
CHLD: 当子进程终止的时候,会向父进程发送 CHLD 信号,这样,如果子进程由于某些模块出现了 Bug,导致子进程意外终止的情况时,那么父进程可以立刻通过 CHLD 信号发现这样一个事件,然后重新拉起进程,从而达到配置文件中所指定的 worker 进程的数量。
TERM,INT : 表示立刻停止 Nginx 进程,等同于命令行的 stop。
QUIT:表示优雅的停止 Nginx 进程,优雅:慢慢的关闭,不立刻关闭与客户端的连接,比如 TCP 连接的情况,不会立刻发送 reset 复位请求的报文。
HUP: 表示重新载入配置文件,等同于命令行的 reload。
USR1: 表示重新打开日志文件,常用于日志文件的切割,等同于命令行的 reopen。
USR2: 表示重新生成一个新的 master 进程以及新的 master 进程生成新的 worker 进程,用于热部署。
WINCH: 优雅关闭老的 master 进程下的 worker 进程,用于热部署。
注释:红色的信号只能通过 linux 命令来发送给 master 进程,所以我们需要知道 master 进程的 PID。
总结:当我们从命令行执行对应的命令时,比如:./nginx -s reload 这个命令时,首先读取 logs/nginx.pid 文件,找到当前 master 的 PID,然后向 master 发送对应的信号。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗