「Address already in use」とか出てNginxを起動できない時の対応策

Nginxを起動する際、ごくごく稀に起動できないことがあります。

例えばAddress already in useというエラー。文字通りポート番号やアドレスが別のサービスですでに使われている場合に発生します。

今回はその解決方法についてまとめます。

LISTENポートを調べる

lsofコマンドを使い、ポート番号がすでに使われていないか調べることができます。lsofコマンドがない場合はインストールします。

lsof -i -P | grep "LISTEN"

今回はなぜかNginx自身がゾンビ状態になってポートを占有していた模様。。

ポートを占有しているサービスを止める

ポートを占有しているサービスを止めます。

systemctl stop nginx

↑これでダメならプロセスを強制終了します。

念のためpsコマンドでプロセスを確認し、

ps ax | grep nginx

pkillします。
pkill -15 -f nginx

Nginxが起動するか確認する

ポートを占有しているサービスを止めたら、Nginxが無事起動するはず。

systemctl start nginx
systemctl status nginx

まとめ

対処療法ではありますが、lsofでLISTENポートを確認し、対象のプロセスをpkillすることで一旦は解決します。

コメントを残す

Your email address will not be published. Required fields are marked *

*

This site uses Akismet to reduce spam. Learn how your comment data is processed.