解决Nginx错误:nginx: [error] invalid PID number ““ in “runnginx.pid“
作者:mmseoamin日期:2023-12-19

这里总结了三种方法来解决Nginx错误:nginx: [error] invalid PID number “” in “/run/nginx.pid”

问题描述

对 nginx 执行 -s reload 命令时报错:

[MyHome@MyMachine ~]$ sudo nginx -s reload
nginx: [error] invalid PID number "" in "/run/nginx.pid"

解决方法

方法1:重新加载配置文件 nginx.conf,然后再执行 reload

一般这个方法会比较常用

[root@vm00004 ~]$ # nginx.conf 可能不在 /etc/nginx/ 下,具体视 nginx 的安装路径而定
[root@vm00004 ~]$ sudo nginx -c /etc/nginx/nginx.conf
[root@vm00004 ~]$ sudo nginx -s reload

方法2:直接将 nginx 主进程的 PID 写入 “/run/nginx.pid”

[root@vm00004 ~]$ # 下面的命令得到 nginx 主进程的PID:19386
[root@vm00004 ~]$ ps -aux | grep "nginx: master process"
root     19386  0.0  0.0  70060  7308 ?        Ss   15:36   0:00 nginx: master process nginx
myname 20740  0.0  0.0 116800  1048 pts/0    S+   23:31   0:00 grep --color=auto nginx: master process
[root@vm00004 ~]$ sudo echo 19386 > /run/nginx.pid
[root@vm00004 ~]$ sudo nginx -s reload

方法3:杀掉 nginx 的主进程,然后重启 nginx

尽量别用,nginx 会关闭一段时间,重启时也可能会有其他问题导致不能启动,这可能会大范围影响到生产环境上一些服务的使用。

[root@vm00004 ~]$ sudo killall nginx
[root@vm00004 ~]$ sudo nginx