这里总结了三种方法来解决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