背景
修改nginx配置文件nginx.conf后,想要重启nginx使配置生效。cmd进入nginx安装目录,输入命令: nginx -s reload
报错:nginx: [error] CreateFile() "D:\nginx-1.20.1/logs/nginx.pid" failed (2: The system cannot find the file specified)
原因分析
- 问题的直接原因就是在nginx的安装目录下的logs目录里面没有nginx.pid这个文件,一般情况下nginx启动时会自动创建nginx.pid文件的
- nginx启动或者重启需要杀掉原来的nginx进程,需要根据nginx.pid找到原来的进程,其中pid其实就是原来的进程ID了
- 出现这种情况的原因可能是nginx未启动或者nginx.pid被手动删除掉,有时候在windows系统通过双击方式启动nginx会有无法在logs目录下自动生成nginx.pid文件的情况
- 在没有启动nginx的情况下(以及你不清楚有没有启动),不要使用nginx -s reload命令来作为启动命令,可以避免这个报错发生
解决方法
1.任务管理器里面找到原来的nginx进程(如果有的话)并关掉,然后使用cmd命令的方式启动nginx 2.cmd 进入 nginx安装目录 3.输入命令 start nginx 或者 nginx.exe 启动nginx 4.去nginx目录下logs目录下看看有没有nginx.pid的文件;如果没有重复123操作 5.如果nginx.pid已经生成,再去修改配置文件后就可以正常重启了 6.nginx -s reload