rails s 実行時に、Address already in use とエラーがでるときの対処法

状態

rails sで、サーバー立ち上げようとするが、エラー発生。

Address already in use - bind(2) for "127.0.0.1" port 3000 (Errno::EADDRINUSE)

 

「ローカルサーバー3000番ポートがすでに使われている」ためのエラーのよう...

 

対処

1. lsof -i:3000でポート3000番を使用しているプロセスを確認

$ lsof -i:3000
COMMAND  PID USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
ruby    1444 user   19u  IPv4 0x1e75dcaef29d670b      0t0  TCP localhost:hbci (LISTEN)
ruby    1444 user   20u  IPv6 0x1e75dcaeebb77103      0t0  TCP localhost:hbci (LISTEN)
ruby    1444 user   25u  IPv6 0x1e75dcaeebb76583      0t0  TCP localhost:hbci->localhost:50195 (CLOSE_WAIT)
ruby    1444 user   26u  IPv6 0x1e75dcaeebb75fc3      0t0  TCP localhost:hbci->localhost:50196 (CLOSE_WAIT)
 
2. kill -9 1444でプロセスを kill する。

 続いて、lsof -i:3000でプロセスを確認

$ kill -9 1444
$ lsof -i:3000
=> なし

3. 再度、rails s

$ rails s
=> Booting Puma
=> Rails 5.2.3 application starting in development
=> Run `rails server -h` for more startup options
Puma starting in single mode..

 

結果

 ・無事、動作しました。 ^ - ^