本サイトのコンテンツには、商品プロモーションが含まれている場合があります。

Linux

(98)Address already in use: が出てApacheが再起動できないときの対処How to not restart apache (98)Address already in use:

スポンサーリンク

Apache再起動したら下記エラーがでて再起動に失敗。
[plain]
/etc/rc.d/init.d/httpd restart
httpd を停止中: [失敗]
httpd を起動中: (98)Address already in use: make_sock: could not bind to address [::]:80
(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
[失敗]
[/plain]

(98)Address already in use: が出てApacheが再起動できないときの対処方法。


スポンサードリンク

これは通常、ポート80を他のプロセスが使用しているときに出るエラーメッセージ。
どうやらApacheが異常終了したせいで、古いApacheのプロセスが残っているのを、新しいApacheが「80番ポートが使われている!?」と誤解しているらしい
ApacheがRestartできない!(98)Address already in use: make_sock… - Weblogy

ということらしいので
[1]80番ポートを使用しているプロセスをkillする
[2]再起動する

が必要。

■[1]80番ポートを使用しているプロセスをkillする

lsof(プロセスが使用中のファイルを調べるコマンド)をつかってプロセスを調べる。
grep httpをパイプする(「|」でコマンドをつなげられる)ことで表示を限定する
[plain]
/usr/sbin/lsof -i | grep http
[/plain]

[plain]
/usr/sbin/lsof -i | grep http
httpd 26877 apache 3u IPv6 662888 TCP *:http (LISTEN)
httpd 26877 apache 11u IPv6 759646 *************
[/plain]

左から2番めの数値がプロセスID(26877)。これをkill(プロセスを強制終了)する

[plain]
kill -9 26877
[/plain]
killコマンドはkill -[option] [プロセスID]。
オプションの9は強制終了を意味する
UNIXコマンド [kill]

もう一度Isofコマンドを打ってプロセスが終了していることを確認。

[2]再起動する
[plain]
etc/rc.d/init.d/httpd restart
httpd を停止中: [ OK ]
httpd を起動中: [ OK ]
[/plain]
起動中がOKになればよし。

-Linux