kojiokanoのブログ

コーディング業務で困ったところをまとめています。

rails sが走らない時の対処法

↓のようなエラーが出ている場合

port 3000 (Errno::EADDRINUSE)

これは前回の作業でrailsが走っている状態でターミナルを終了し、表示はされていないが裏でport3000でrailsが接続されている状態になっている。
エラーは既にport 3000でrailsが接続されているので更にrails sをすることはできないことを意味している。

そこで↓のコマンドを打ちport 3000に接続しているものの一覧を表示させる

lsof -i :3000

接続一覧の中でPID(接続ID)の欄に4桁の数字が表示されるので、
その接続を↓のコマンドで切断する。(※部分にPIDの数字を入れる)

kill ※※※※

複数、接続されている場合は、かくPIDの接続を切断してやる

port 3000への接続がなくなれば新たにrails sで接続できるようになる。

ターミナルを落とす際にはrails の接続をcontrol+Cで切断するように心がけるとこのようなエラーが出なくなる。