|
|
在 Linux 服务器运维场景中,Nginx 的进程停止并非简单的「杀死进程」操作。`nginx -s stop` 与 `nginx -s quit` 背后对应着两个截然不同的信号机制,直接决定了正在处理的请求是否被强制中断。本文从信号层面深度解析两者差异,给出生产环境的选型结论。
## 一、两条停止路径的底层差异
Nginx Master 进程支持两种停止模式,通过不同信号实现:
| 停止方式 | 底层信号 | 等价命令 | 行为特征 |
|----------|----------|----------|----------|
| 快速停止(Stop) | `SIGTERM`(信号 15) | `kill -TERM <master_pid>` | 立即终止,不等待活跃连接释放 |
| 优雅停止(Quit) | `SIGQUIT`(信号 0) | `kill -QUIT <master_pid>` | 等待所有活跃连接处理完毕后再退出 |
`SIGTERM` 的处理逻辑:Master 进程收到 SIGTERM 后,会立即向所有 Worker 进程发送 `SIGTERM`,Worker 进程不进行任何清理,直接退出。这意味着当前正在处理的 HTTP 请求会被强制中断,客户端可能收到连接重置或非完整响应。
---
【标签】
Thinkpad, IBM, X1 Carbon, AI开发, Ollama部署, 本地大语言模型, VSCode配置, 华强北, 选购指南
【相关阅读】
- Thinkpad T14 深度评测:商务本的性能极限在哪里
- OpenClaw多模型集成配置指南
- 华强北Thinkpad港版购买防坑指南
|
|