在命令行中使用.\nginx.exe打开nginx,然后使用 .\nginx.exe -s quit 后,刷新页面发现还能正常访问。然后查看logs目录,发现pid文件已经没有了。但是查看任务管理器发现还有两个nginx的进程还在运行,于是将其结束,再次刷新浏览器发现页面无法访问。
所以再次打开nginx,并使用 .\nginx.exe -s stop 结束nginx,这次刷新页面发现无法访问,并且查看任务管理器发现没有nginx的进程在运行。
.\nginx.exe -s stop 与 .\nginx.exe -s quit 是有区别的。当使用 .\nginx.exe -s stop 时,worker 进程与 master 进程在收到信号后会立刻跳出循环,退出进程。而使用 .\nginx.exe -s quit 时,首先会关闭监听端口,停止接收新的连接,然后将当前正在处理的 nginx 连接全部处理完,最后再退出所有 nginx 进程。
在命令行使用.nginx.exe停止服务后,PID文件消失,但任务管理器仍显示nginx进程在运行。强制结束进程后,重新启动nginx,服务无法访问。使用.nginx.exe-sstop命令则成功停止服务,无进程运行,但页面也无法访问。
5887

被折叠的 条评论
为什么被折叠?



