重启nginxnginx: [error] open() “/usr/local/nginx/logs/nginx.pid“ failed (2: No such file or directory)
·
重启nginx报错
nginx 在尝试读取其 PID 文件时失败了,因为该文件不存在。这通常发生在你试图重启 nginx,但 nginx 的主进程实际上已经不在运行了(也就是 PID 文件被删除或者未创建)。
nginx: [error] open() "/usr/local/nginx/logs/nginx.pid" failed (2: No such file or directory)
解决
后台直接杀掉进程后重启
(base) [root@localhost sbin]# ps -ef | grep nginx
root 354128 349317 0 11:17 pts/2 00:00:00 grep nginx
root 391883 1 0 May07 ? 00:00:00 nginx: master process ./nginx
admin 391884 391883 0 May07 ? 00:16:38 nginx: worker process
(base) [root@localhost sbin]# kill -9 391883 391884
(base) [root@localhost sbin]# ./nginx
为什么“将 nginx 进程杀掉再重启”就可以了?
PID 文件不存在时,nginx reload 或 restart 命令失效
nginx 的 -s reload 或系统服务方式(如 systemctl restart nginx)依赖于 /usr/local/nginx/logs/nginx.pid 中的进程号来找到并控制 nginx 主进程。如果该文件不存在,系统无法找到要重启的 nginx 实例。
手动 kill 后重新启动 nginx
当你手动 kill 所有 nginx 进程并重新启动时,nginx 会重新创建这个 pid 文件(前提是启动成功),因此不会再报错。
可能导致 PID 文件缺失的原因:
非正常关闭 nginx(例如使用 kill -9 而不是 nginx -s quit)
服务器重启但没有设置 nginx 开机自启动
权限问题导致 nginx 无法写入 pid 文件
配文件中指定了错误的 pid 文件路径
更多推荐


所有评论(0)