centos – Nginx无法停止并且缺少nginx.pid

前端之家收集整理的这篇文章主要介绍了centos – Nginx无法停止并且缺少nginx.pid前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想停止Nginx,但它失败了.
$sudo service Nginx stop
Stopping Nginx:                                            [Failed]

定义Nginx.pid位置的Nginx.conf有一行.

# /etc/Nginx/Nginx.conf
pid        /var/run/Nginx.pid;

但目录/ var / run /中没有Nginx.pid.

locate Nginx.pid显示输出.

/var/run/Nginx.pid 
/var/run/Nginx.pid.oldbin

但在更新后,搜索没有匹配.
我在CentOS 6.5版(最终版)中使用Nginx / 1.4.4.

我应该怎么做才能阻止Nginx守护进程?

编辑2014/01/07

这是ps -ef |的输出grep Nginx,似乎Nginx守护进程仍在运行.

ironsand 17065 16933  0 15:55 pts/0    00:00:00 grep --color Nginx
root     19506     1  0  2013 ?        00:00:00 Nginx: master process /usr/sbin/Nginx -c /etc/Nginx/Nginx.conf
ironsand 19507 19506  0  2013 ?        00:00:25 Nginx: worker process

并且sudo服务Nginx restart会出现此错误.我认为Nginx无法启动,因为旧的还活着.并且/var/log/Nginx/error.log-2014017也包含此错误.

Stopping Nginx:                                            [Failed]
Starting Nginx: Nginx: [emerg] bind() to 0.0.0.0:80 Failed (98: Address already in use)
Nginx: [emerg] bind() to 0.0.0.0:80 Failed (98: Address already in use)
Nginx: [emerg] bind() to 0.0.0.0:80 Failed (98: Address already in use)
Nginx: [emerg] bind() to 0.0.0.0:80 Failed (98: Address already in use)
Nginx: [emerg] bind() to 0.0.0.0:80 Failed (98: Address already in use)
Nginx: [emerg] still could not bind()
                                                           [Failed]
我建议首先通过杀死它的主进程来停止Nginx. Nginx没有正确关闭可能是因为它无法使用init脚本停止.

ps -ef |grep Nginx

这将显示Nginx主进程的PID.就像你上面提到的:

root 19506 1 0 2013 ? 00:00:00 Nginx: master process
/usr/sbin/Nginx -c /etc/Nginx/Nginx.conf

用它来杀死它

kill -9 19506

再次验证是否有任何Nginx进程正在运行或端口80是否被占用.如果您看到任何进程绑定到端口80,请识别PID并检查它是否可以被终止.

ps -ef |grep Nginx

netstat -tulpn |grep 80

确保文件系统正常,您可以读/写/ var文件系统.然后启动Nginx

service Nginx start

猜你在找的CentOS相关文章