LoginSignup
12
8

More than 3 years have passed since last update.

`bind': Address already in use - bind(2) for 127.0.0.1:3000 (Errno::EADDRINUSE)エラーの対処法

Posted at

事象

何かしら処理をしている最中にサーバーを止めてしまった時、再度サーバーを立ち上げようとすると次のエラーが発生した。

`bind': Address already in use - bind(2) for 127.0.0.1:3000 (Errno::EADDRINUSE)

原因と対処法

既に3000番ポートが使われているというエラー。
解決方法は2つ

  1. 別ポートを使用する
  2. 使用されているプロセスを切る

1. 別ポートを使用する

3000番ボートが使用されているのなら別のポートを使用してサーバーを立ち上げればいい、という話。
※だが、根本的な解決にはなっていないので、2の方法をするのがいい

# 3000番以外のポートで立ち上げる
rails s -p 8000

2.使用されているプロセスを切る

現在動いているrubyのプロセスを確認する

$ ps -ax | grep ruby

動いているプロセスがあれば次のように表示される。

6462 ttys011    0:12.64 /Users/*****/.rbenv/versions/2.5.3/bin/ruby bin/rails server
8380 ttys011    0:00.00 grep ruby

動いているrailsプロセスをkillします。

$ kill 6462

プロセスがkillされたか確認する

$ ps -ax | grep ruby
6462 ttys011    0:12.64 /Users/*****/.rbenv/versions/2.5.3/bin/ruby bin/rails server
8380 ttys011    0:00.00 grep ruby

切れていないようなので、killコマンドにオプションをつけて強制的にkillする

# "-9"は強制終了のオプション
$ kill -9 6462

# プロセスを再確認
$ ps -ax | grep ruby
 8405 ttys011    0:00.00 grep ruby

これでrailsプロセスは切れたのでrailsサーバーが立ち上がるようになっているはずです。

参考

12
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
8