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()
これらの指示 を試してみましたが、出力が少し違って見えるので、あまり運がありません。
出力:
ps ax -o pid,ppid,%cpu,vsz,wchan,command|egrep '(nginx|PID)'
です:
PID PPID %CPU VSZ WCHAN COMMAND
15015 12765 0.0 2432784 - egrep (nginx|PID)
そのPIDを使用してプロセスを強制終了しようとしましたが、決して死ぬことはないようです... nginxを再度実行する方法に関するアイデアはありますか?どんな助けでも大歓迎です!!
君の ps ... | egrep
コマンドは、nginxのインスタンスではなく、それ自体を検出しています(「COMMAND」列を見てください)。ポート80が使用されているので、おそらく他のプログラム(OSに付属しているApacheなど)が実行されていて、それを取得している可能性があります。調べるには、次を実行:
Sudo lsof -i:80
システムのApache( "httpd")プログラムの場合は、おそらく次のコマンドでシャットダウンできます。
Sudo launchctl unload -w /System/Library/LaunchDaemons/org.Apache.httpd.plist
それでもうまくいかない場合は、ポート80を取得しているものとそれがどのように開始されているのかを理解するために、より多くの情報が必要になります。
おそらくまだnginxが実行されており、ポート80でリッスンしています。このコマンドを試してください
Sudo killall nginx