apacheの再起動でエラー (98)Address already in use: make_sock: could not bind to address [::]:80

バーチャルホストの設定をしようとhttpd.confなどを弄って、apacheを再起動しようとしたらエラーが出て、WEBサーバーが停止したままになった。
随分あせりましたが、解決方法がみつかったのでメモしておきます。

$ /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

↑ここでエラーが出ています。

他のプロセスが443(80)番ポートを使用しているためにApacheがポートを使えないために起こるエラーです。

apacheが正常に終了しなかった為、起動できなくなっている状態です。

修正方法は
まず該当のポートを使用しているプロセスを確認します。

/usr/sbin/lsof -i | grep http

uselib24 15272 apache 4u IPv6 217212 TCP *:http (LISTEN)
uselib24 15272 apache 6u IPv6 217217 TCP *:https (LISTEN)

プロセス15272が apacheを使っている模様。

kill 15272

でプロセスを停止します。

で、apacheを起動します。

# service httpd start
httpd を起動中: [ OK ]

これでうまく起動できました。

駐車場に車を止めた直後にサイフを忘れたことに気付いたときぐらい、あせりました。