问题描述
nginx: [error] CreateFile() "D:\nginx\nginx-1.21.6\nginx-1.21.6/logs/nginx.pid" failed (2: The system cannot find the file specified)
执行命令 start nginx 启动 nginx 后 ,nginx -s quit 报错
一开始执行一次 nginx -s quit 未报错 , 但是 启动的服务还没有关闭 ,后面再次执行,报错
根据报错信息来看,在 nginx 安装目录下的 logs文件中找不到 nginx.pid 文件,去对应文件查看,发现确实没有该文件
解决办法
在任务管理器强制关闭nginx进程 (快捷键:Ctrl + shift + Esc )
刷新页面后,无法访问
再重新 执行命令 start nginx 启动 服务
现在发现在 刚才报错的目录下多出了 nginx.pid 文件
再用命令 nginx -s quit ,正常关闭 nginx 进程
刷新页面 无法访问 http://127.0.0.1/,成功关闭 nginx
原因分析
nginx 在启动或重启时要杀掉之前的 nginx 进程,就需要通过 nginx.pid 来找到原来的进程,而 nginx.pid 存储的就是原来的进程 id 。没有进程id系统就无法找到原来的 nginx 进程,自然就无法关闭了
之后测试无论是双击 nginx.exe 还是 cmd 命令启动 nginx,都会自动在 logs 文件下配置nginx.pid 文件,均可正常关闭
文章如有错误,恳请大家提出问题,本人不胜感激 。 不懂的地方可以评论,我都会 一 一 回复
文章对大家有帮助的话,希望大家能动手点赞鼓励,大家未来一起努力 长路漫漫,道阻且长