新手求助,nginx启动不了,报错”nginx is already running?“ 我前几天都用得好好的,为什么今晚就用不了了???请看内容详细说明。。。

2013-03-14 00:28:23 +08:00
 barbery
首先,我的系统是ubuntu的12.04桌面版,我装了lnmp一键包,和春哥的openresty。。。之前的做法是先把lnmp的nginx关了,然后再把openresty的nginx打开,就可以玩看春哥的教程学习openresty了。。。不知道怎么地,今晚就是启动不了,我确定我把lnmp的nginx关了,访问都访问不了了。。。而且还有一个奇怪的现象,以前,要是没把lnmp的关闭,打开openresty的话,报错是报
nginx: [emerg] bind() to XX.XX.XX.XX:80 failed (98: Address already in use)
nginx: [emerg] bind() to XX.XX.XX.XX:80 failed (98: Address already in use)
nginx: [emerg] bind() to XX.XX.XX.XX:80 failed (98: Address already in use)
nginx: [emerg] bind() to XX.XX.XX.XX:80 failed (98: Address already in use)

这样的错误。。。。但是今晚就只是出现一行 ”nginx is already running?“ 跪求解答是什么原因。。。太奇怪了,前几天晚上都用得了啊。。。最后openresty的nginx check命令内容显示
syntax is ok && test is sucessful

症状就如上所述。。请问各位医生,还有救吗???
5231 次点击
所在节点    NGINX
14 条回复
wjkk
2013-03-14 09:18:05 +08:00
请 执行下这个命令,输出什么
ps -aux | grep nginx
tarsier
2013-03-14 09:27:05 +08:00
80端口被占用了,lsof查一下看看究竟啥程序用了80端口
glancesx
2013-03-14 09:36:36 +08:00
把openresty配置文件里的端口改成非80,简单满足你的需求了.
angeloce
2013-03-14 09:41:53 +08:00
同@tarsier 说的, 80端口不是被其它进程就是僵尸占领了, netstat查下谁干的, 干掉它就行了.
manoon
2013-03-14 12:50:24 +08:00
pkill nginx first
nginx -s start
skyangel3
2013-03-14 12:53:10 +08:00
我猜90%被apache占了, 好像现在apt-get install php5 会自动下载apache
barbery
2013-03-14 16:26:03 +08:00
@wjkk 出现下面内容
root@ubuntu:/home/barbery# ps -aux | grep nginx
Warning: bad ps syntax, perhaps a bogus '-'? See http://procps.sf.net/faq.html
root 2581 0.0 0.0 4388 832 pts/0 S+ 16:26 0:00 grep --color=auto nginx
barbery
2013-03-14 16:27:17 +08:00
@tarsier 大哥,我打lsof显示了十几个屏幕的内容,看我眼都花了,有什么方法可以再准确点么
barbery
2013-03-14 16:34:42 +08:00
@manoon
@wjkk
@tarsier
root@ubuntu:/home/barbery# lsof -i :80
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
ubuntu-ge 2250 barbery 7u IPv4 12610 0t0 TCP ubuntu.local:59328->mistletoe.canonical.com:http (CLOSE_WAIT)

这个怎么解决呀
tarsier
2013-03-14 16:44:06 +08:00
@barbery sudo kill -9 2250 后 启动nginx试试
emptyhua
2013-03-14 16:47:41 +08:00
把openresty生成的nginx.pid删除之后试下
barbery
2013-03-14 16:51:26 +08:00
@tarsier 不行耶。。。还是提示“nginx is already running”, 不过现在打lsof -i:80 和 lsof -i:8080 都没有内容显示了。。。
root@ubuntu:/home/barbery# ./openresty.server
usage: ./openresty.server {check|start|term|stop|reload|restart|upgrade}
root@ubuntu:/home/barbery# ./openresty.server start
Nging is already running?
root@ubuntu:/home/barbery# lsof -i :80
root@ubuntu:/home/barbery#
barbery
2013-03-14 16:54:41 +08:00
@emptyhua 真的就可以了耶。。。。请问是什么原理啊,解释一下吧,下次遇到就不用做伸手党了。。。。
tarsier
2013-03-14 17:09:56 +08:00
@barbery nginx本身会在 /var/run/下生成nginx.pid 文件记载 nginx的进程号,估计你这个nginx和openresty的两个混用了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/62859

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX