Apache再起動でエラー「Address already in use: make_sock: could not bind to address 」

少し古めのサーバーで、Apacheを再起動したら下記のように「Address already in use: make_sock: could not bind to address …」とエラーになりました

$ sudo /etc/init.d/httpd2 restart
Stopping httpd:                                            [  OK  ]
Starting 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
                                                           [FAILED]

エラーの原因ですが古いApacheのプロセスが残っていて、Apacheが起動できなかったようです。
私の場合は、再度再起動をおこなうとApacheが起動したので、Apacheを停止時にApacheが停止に時間がかかり、Apache起動時にプロセスが残ったままだった可能性が高いです

何度か再起動しても、上記のエラーが解消しない場合は、KillコマンドでApacheのプロセスを止めれば起動するかと思います
手順としては、ps, lsof コマンドで起動しているApacheのプロセスIDを調べます、その後にKillコマンドでプロセスを終了します

# psコマンドでApacheのプロセスを調べる
$ ps -ef|grep httpd
apache    1811  4125  0 Oct09 ?        00:00:01 /usr/sbin/httpd -DFOREGROUND
root      4125     1  0 Oct03 ?        00:01:18 /usr/sbin/httpd -DFOREGROUND
apache    7319  4125  0 Oct09 ?        00:00:09 /usr/sbin/httpd -DFOREGROUND
apache    7321  4125  0 Oct09 ?        00:00:02 /usr/sbin/httpd -DFOREGROUND

# lsof コマンドでプロセスを調べる
$ sudo lsof -i | grep http
httpd      1811   apache    3u  IPv4 11444372      0t0  TCP *:http (LISTEN)
httpd      1811   apache    4u  IPv4 11444381      0t0  TCP *:https (LISTEN)
httpd      4125     root    3u  IPv4 11444372      0t0  TCP *:http (LISTEN)
httpd      4125     root    4u  IPv4 11444381      0t0  TCP *:https (LISTEN)
httpd      7319   apache    3u  IPv4 11444372      0t0  TCP *:http (LISTEN)

# KillコマンドでApacheを止めます
$ sudo kill -9 4125
$ sudo kill -9 1811

 

スポンサーリンク

0
0