- 更新日: 2014年8月27日
- Vagrant & Chef
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
Nginx のプロセスがポートをリッスンしながら死んでしまう事象が発生。以下のとおり、nginx を起動しようとするとエラーになりました。
1 2 3 4 5 6 7 8 9 |
$ sudo service nginx start Starting 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番ポートは既に使われているよ、とメッセージが出力され起動できないエラー。
lsof コマンドで、特定のポートを LISTEN しているプロセスを調べる
入ってなかったので、lsof コマンドを入れる。実際には、Chef の Recipe に書いてプロビジョニングしました。
1 2 3 |
$ sudo yum install lsof |
lsof コマンドで80番ポートを Listen しているプロセスを調べる。
1 2 3 4 5 6 |
$ sudo lsof -i:80 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME nginx 27609 root 7u IPv4 534378 0t0 TCP *:http (LISTEN) nginx 27610 nginx 7u IPv4 534378 0t0 TCP *:http (LISTEN) |
COMMAND に nginx とあるので、80番ポートを LISTEN しているのは nginx 自身らしい…。一方で nginx のステータスは…
1 2 3 4 |
$ sudo service nginx status nginx is stopped |
と、停止しています。nginx が80番ポートを聞きつつプロセス自体は停止している(?)みたいです。
プロセスを kill して nginx 起動
PID を指定して手動でプロセスを kill します。
1 2 3 |
$ sudo kill 27609 |
起動。
1 2 3 |
$ sudo service nginx start |
これで nginx が起動します。
Chef を使う場合の注意点
注意点として Chef を使う場合、一旦 nginx を停止させたあと、プロビジョニングを実行したほうが良い。
サーバー側で nginx 停止。
1 2 3 |
$ sudo service nginx stop |
ローカルのマシンでプロビジョニング。
1 2 3 |
[local]$ bundle exec knife solo cook some_node |
こうしないで先にサーバー側で手動で service nginx start させていると、プロビジョニング実行時に Nginx 用の Chef Recipe に書いてる service リソースで同様のエラーが発生しました。nginx が stop した状態で、Chef Recipe を通して nginx を start させると OK。
- Vagrant & Chef の関連記事
- Vagrantで使うVirtualBoxのVM(仮想マシン)を外付けHDDに移動
- Chefで/etc/sysctl.confのkernel.panicを設定
- Chefでtelnetをインストール
- Chefでyumリポジトリを追加する設定
- Chef で iptables の設定
- ChefでSSH接続用の公開鍵をサーバーに設置
- Chef Recipe でユーザー・グループを作成
- Chef Recipe で CentOS のネットワーク・ホストを設定
- NetworkManager 他不要なパッケージを削除する Chef Recipe
- CentOS サーバー設定用 Chef Cookbook/Recipe の目次
Leave Your Message!