「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することで一旦は解決します。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください