强制杀了nginx进程又自动换了pid启动起来了

背景:

当 Worker 进程被强制终止时,操作系统会向 Master 进程发送一个 SIGCHLD 信号
Master 进程收到信号后,会立即调用 waitpid() 检测到有 Worker 异常退出。为了防止服务中断,Master 会迅速调用 fork() 创建一个全新的 Worker 进程。

新启动的 Worker 进程会直接继承 Master 进程已经创建好的监听端口(Socket)和配置信息,无需重新绑定端口,从而在毫秒级时间内无缝接管业务请求

因为这个原因,每次强杀nginx 总是自动启动了nginx

解决:

1.强制删除损坏的 PID 文件
sudo rm -f /var/run/nginx.pid

2.检查并清理残留进程(防止端口被占用):
sudo killall nginx
3.重新启动 Nginx

sudo systemctl start nginx

 

posted @ 2026-08-10 14:20  龙卷风之殇  阅读(8)  评论(0)    收藏  举报