こんにちは、おーしまです。
今回は、rails sしたままターミナルを落とした時の対処法についてです。
ターミナルでrails sして、サーバーを起動させたままターミナルを落としてしまい、
もう一度、rails sしようとすると、
Address already in use - bind(2) for 127.0.0.1:3000 (Errno::EADDRINUSE)
というエラーが起きます。
でも実際、このエラー文を出すためにわざとrails sしたままターミナルを落としたけど、
エラーは起きなかった。起きる時と起きない時があるのか、、、(上のエラー文はお借りしました。)
とにかく、上のエラー文が出るということは、
前回のrails sでのサーバーが起動したままで、新しくサーバーを起動できないってことです。
対処法
ターミナルで
lsof -i :3000
と入力。
これで、現在 localhost:3000 に接続されているやつ?が出てきます。(詳しくは分かりません)
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME ruby 24575 ***** 6u IPv4 161869 0t0 TCP *:3000 (LISTEN)
次はPIDに注目します。上記では、24575
これは、rails s でサーバーを起動させた時にできるランダムの数字です。
これを削除します。
kill -QUIT PID
kill -9 PID
調べると、2種類やり方がありましたが、私は上の方で成功しました。
多分上が新しいやつだと思う。。。
PIDには先ほど調べたPIDの数字が入ります。(上記では24575)
今回はここまでです。
それでは、また〜