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