(98)Address already in use: と出てapacheが再起動できない場合の対策
2018/05/11
apache の設定を行い再起動しようとすると、Address already in use というエラーが出ました。
調べてみると、他のプロセスが80番ポートを占有しているからとのこと。
再起動できないってのは都合がわるいので、その対策です。
Address already in use: 対策
再起動失敗とエラー内容
1 2 3 4 5 6 |
# /etc/init.d/httpd graceful httpd not running, trying to start (98)Address already in use: make_sock: could not bind to address 0.0.0.0:80 no listening sockets available, shutting down Unable to open logs |
他のプロセスが80番ポートを使用しているために apache がポートを使えないために起こるエラーらしい。
調査
ポートを使用しているプロセスの確認。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
sudo lsof -i | grep http httpd 21746 root 3u IPv4 747509 TCP *:http (LISTEN) httpd 21767 daemon 3u IPv4 747509 TCP *:http (LISTEN) httpd 21768 daemon 3u IPv4 747509 TCP *:http (LISTEN) httpd 21769 daemon 3u IPv4 747509 TCP *:http (LISTEN) httpd 21770 daemon 3u IPv4 747509 TCP *:http (LISTEN) httpd 21771 daemon 3u IPv4 747509 TCP *:http (LISTEN) httpd 21775 daemon 3u IPv4 747509 TCP *:http (LISTEN) httpd 21778 daemon 3u IPv4 747509 TCP *:http (LISTEN) httpd 21779 daemon 3u IPv4 747509 TCP *:http (LISTEN) httpd 21780 daemon 3u IPv4 747509 TCP *:http (LISTEN) httpd 21781 daemon 3u IPv4 747509 TCP *:http (LISTEN) |
プロセスID:21746 ~ 21781までが apache を使っています。
プロセス停止、再起動
ということで、該当するプロセスを停止させます。
1 2 3 4 5 6 7 8 9 10 11 |
sudo kill -9 21746 sudo kill -9 21767 sudo kill -9 21768 sudo kill -9 21769 sudo kill -9 21770 sudo kill -9 21771 sudo kill -9 21775 sudo kill -9 21778 sudo kill -9 21779 sudo kill -9 21780 sudo kill -9 21781 |
この状態で再度調査(sudo lsof -i | grep http)すると、何も出ません。
ちなみに、apache が停止しているので、ブラウザでアクセスすると当然ながら「404エラー」が出ます。
再起動したいだけなのになぁ…
最後に起動
1 |
/usr/local/apache2/bin/apachectl start |
これで再び起動するはずです。
なお、原因は『httpdが異常終了する等して古いhttpdプロセスが残っていること』とのことですが、手元にある(実験用)サーバは毎回この状態で、何故そうなるのかは現状ではまだわかりません。
もうちょっと探る必要があるかな…。
(おまけ)apacheの再起動コマンドについて
1 |
/etc/init.d/httpd restart |
↑ クライアントと接続中の httpd プロセスを停止してしまうため、クライアントとの通信が強制的に切断してしまう。
1 |
/etc/init.d/httpd graceful |
↑ graceful はすべてのクライアントとの通信が終了するまで再起動しません。
Webサーバなどを公開していて、httpdサービスの停止が出来ない場合はかなり効果的。
参考サイト
http://qiita.com/ysk24ok/items/ffe8d5d1479aaf5afeaa
http://owen11.hateblo.jp/entry/2013/12/03/122952