Apacheを起動させようとして
Address already in use: make_sock: could not bind to address [::]:80
というのが表示されて起動できなかった時の話、もとい備忘録。
このメッセージは「既に80番ポートを使用しているプロセスがあるのでApahceを起動できません」ということ。
Apacheを切っているのに何故80番が塞がってるのかはよく分からないがとにかく80番を空けないといけない。
下記コマンドで80番ポートを使用しているプロセスを洗い出す。
/usr/sbin/lsof -i | grep http
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
python 6976 apache 3u IPv6 4898404 TCP *:http (LISTEN)
python 6976 apache 5u IPv6 4898409 TCP *:https (LISTEN)
perl 20385 apache 3u IPv6 4898404 TCP *:http (LISTEN)
perl 20385 apache 5u IPv6 4898409 TCP *:https (LISTEN)
よく分からないがとりあえずApacheのプロセスが動いていてしかもpythonとかperlとか表示されている。
pythonもperlも使用している覚えは無いが、これをどうにかすれば80番ポートは空くわけだ。
というわけで
kill 6976
でさくっとkill。
―――――と言うとでも思ったか?
よろしい、ならば強制終了だ。
kill -9 6976
という感じで80番ポートを使用しているプロセスを全部削除。
改めてApacheを起動したら無事に動作。
当サーバとは別のサーバで起こったことなのでどういう条件でこうなるのかはいまいちハッキリしてないけど、対処法はマスターしておいて損はないと思われ。