一、问题描述
在我们平常使用nginx的时候,经常有可能会发现我们的pid找不到了,丢失了,这会导致一个错误,如下:
nginx: [error] open() "/var/run/nginx/nginx.pid" failed (2: No such file or directory)
或者是:
nginx: [error] invalid PID number "" in "/var/run/nginx/nginx.pid"
二、问题出现分析
- nginx.pid文件不存在;
- nginx.pid所在的这个目录不存在。
三、解决方案
方案1:创建目录
针对问题:
尝试进入 /var/run/nginx 这个目录:
此处nginx.pid配置的目录,是在对nginx进行编译时设置的,所以具体要检测什么目录,要看你编译时候设置的是什么目录:
可以通过:nginx -V 指令进行查看
如果没有找到这个目录,就进行创建:
mkdir /var/run/nginx
此处具体在哪创建目录,也是和上面一样看你在编译时配置的是什么目录。
尝试进入新创建的目录,检查是否创建成功:
cd /var/run/nginx
进入nginx的安装目录:
cd /usr/local/nginx
获取nginx的安装目录:whereis nginx
方案2:重新指定一个配置文件
针对问题:
进入sbin:
cd /sbin
重新指定一个nginx.conf文件:
./nginx -c /usr/local/nginx/conf/nginx.conf
重新加载配置文件
./nginx -s reload
方案3:修改默认的pid
进入conf目录:
cd ../conf
修改nginx.conf文件,执行新的nginx.pid:
#pid logs/nginx.pid;