处理nginx 重启报错: [error] invalid PID number “logs/nginx.pid”【测试成功】

艺帆风顺 发布于 2025-04-02 16 次阅读


问题描述

参考文章:nginx: [error] invalid PID number “” in “/usr/local/nginx/logs/nginx.pid”

  1. 编译安装完 nginx 后,启动 nginx时,出现nginx已经在运行,即nginx: [emerg] bind() to 0.0.0.0:82 failed (98: Address already in use)。然后输入./nginx -s reload时,出现了nginx: [error] invalid PID number “” in “/usr/local/nginx/logs/nginx.pid”的报错。
  2. 进程还在,没有干掉。却把进程的文件删除了,就会出现这种deleted,不正常进程。


原因分析:

卸载 nginx 前,没有关闭 nginx,导致 nginx 的内容都被删除了, nginx 的进程还保留在虚拟机中。


知识拓展:

1.如何查看nginx的进程

进程:正在运行的程序/脚本。每个进程会有对应的编号——进程号,唯一识别这个进程是谁。

1)ps -ef

  • 查看系统所有进程
[root@test1 ~]# ps -ef
  • 选择只看 nginx 的进程
[root@test1 ~]# ps -ef|grep nginx

nginx是多进程的程序。

2)top命令

  • top命令看到的pid 进程号
[root@test1 ~]# top

  • top命令后,按1看cpu是几核的。(下图说明这个cpu是2核的。)

  • 看cpu是几核的另一个命令:lscpu
[root@test1 ~]# lscpu

3)LSOF

  • lsof 查看某个端口号对应的进程信息
[root@test1 ~]# lsof -i:98

2.如何查看一个进程的执行路径

  • pwdx:来查看进程号(PID)对应的执行路径
[root@test1 ~]# pwdx pid

解决方法:

[root@test1 ~]# ps -ef|grep nginx
[root@test1 ~]# killall -9 nginx
[root@test1 ~]# cd /usr/local/nginx/sbin/
[root@test1 sbin]# ./nginx

kill -9 pid”:强制杀死进程。-9:强制执行。

    版权声明:本文内容来自CSDN:BW_doubleD,遵循CC 4.0 BY-SA版权协议上原文接及本声明。本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行可。原文链接:https://huaweicloud.csdn.net/670ce034e2ce0119e0a26d05.html如有涉及到侵权,请联系,将立即予以删除处理。在此特别鸣谢原作者的创作。此篇文章的所有版权归原作者所有,与本公众号无关,商业转载建议请联系原作者,非商业转载请注明出处。