Nginxの再起動を行ったら、ポートが開けないので再起動できないとメッセージが表示されました。その対策です。
Restarting nginx nginx nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] still could not bind()
対策
ポート80
が既に使われていると表示されているので、ポート80の使用状況を確認します。nginxが使っているようです。
$ sudo lsof -i:80
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
nginx 17347 root 6u IPv4 530624621 0t0 TCP *:http (LISTEN)
nginx 17350 www-data 6u IPv4 530624621 0t0 TCP *:http (LISTEN)
nginx 17350 www-data 13r IPv4 530968512 0t0 TCP
nginx 17350 www-data 14u IPv4 530968513 0t0 TCP
Nginxを停止します。
$ sudo service nginx stop
再度、ポート80の使用状況を確認します。何故かまだ動いているNginxがあるようです。
$ sudo lsof -i:80
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
nginx 17347 root 6u IPv4 530624621 0t0 TCP *:http (LISTEN)
nginx 17350 www-data 6u IPv4 530624621 0t0 TCP *:http (LISTEN)
強制的にKill
します。
$ sudo kill 17347
Nginxを再起動します。無事に動作しました。
$ sudo service nginx restart
Restarting nginx nginx [ OK ]
原因
詳しくは分かりませんでしたが、Nginxをアップグレードした直後の再起動だったので、意図せずNginxが多重起動してしまったのかもしれません。