はじめに
サーバーを再起動しようとしたときに、 Address already in use
がでるので、対処法をメモ。
原因
httpdが正常に終了していない、プロセスを終了せずにターミナルを閉じる等により古いプロセスが残っているのが原因。
雑に消しちゃいけないね。。。
解決方法
# プロセスの確認(rails)
$ ps ax | grep rails
7532 .....
# ポートNoが分かっていればこれで確認できる
$ lsof -i:ポートNo
# http
lsof -i | grep http
7532 .....
上記コマンドで該当のPIDをを見つけ、killすれば解決する
$ kill -9 [該当のPID]
-9
は強制終了のオプションなんですが、なぜかこれを付けてプロセス終了させると再度同じポートのプロセスが立ち上がるという現象が発生して無限ループに陥ることがありました・・・
その解決方法としては、 -9
のオプションを付けないということでした・・・
$ kill [該当のPID]
終わりに
エラー内容をよく読まずにだいぶ苦戦してました。
つら。