nginx启动失败的mac osx 10.9小牛队

gju*_*kie 26 macos nginx osx-mavericks

我一直在使用nginx几个月而没有问题,但在升级到Mac OS X 10.9 Mavericks之后,当我尝试启动nginx时,我得到了这个:

nginx: [emerg] bind() to 0.0.0.0:80 failed (48: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (48: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (48: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (48: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (48: Address already in use)
nginx: [emerg] still could not bind()
Run Code Online (Sandbox Code Playgroud)

我试图遵循这些指示,但由于我的输出看起来有点不同,我没有太多运气.

输出:

ps ax -o pid,ppid,%cpu,vsz,wchan,command|egrep '(nginx|PID)'
Run Code Online (Sandbox Code Playgroud)

是:

  PID  PPID  %CPU      VSZ WCHAN  COMMAND
 15015 12765  0.0  2432784 -      egrep (nginx|PID)
Run Code Online (Sandbox Code Playgroud)

我已经尝试使用该PID杀死进程,但它似乎永远不会死...有关如何让nginx再次运行的任何想法?任何帮助是极大的赞赏!!

Gor*_*son 55

你的ps ... | egrep命令找不到自己,而不是nginx的实例(查看"COMMAND"列).由于端口80正在使用中,可能是其他程序(可能是OS附带的Apache?)正在运行并抓住它.要查找,请运行:

sudo lsof -i:80
Run Code Online (Sandbox Code Playgroud)

如果是系统Apache("httpd")程序,您可以使用以下命令将其关闭:

sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist
Run Code Online (Sandbox Code Playgroud)

如果不这样做,将需要更多的信息来弄清楚什么是抓取端口80以及它是如何开始的.

  • 对于你们这些谷歌用户来说,四年后仍然有效。 (2认同)
  • 6 年了,仍然很强劲 (2认同)

pas*_*lus 5

可能仍在运行 nginx 并监听端口 80。试试这个命令

sudo killall nginx
Run Code Online (Sandbox Code Playgroud)