LoginSignup
1
1

More than 3 years have passed since last update.

rails s が上手くいかない時にやってほしいこと

Posted at

アプリ開発中に、ローカル環境での動作確認のため「localhost:3000」を入力するも画面遷移せず、
不思議に思いターミナルを確認した所、サーバーが起動していませんでした。
色々試行錯誤の末に無事に解決できたので、備忘録として投稿します!

初投稿のため、読みずらかったり分かりにくいと思いますが、
徐々に改善するので温かい目で見て頂ければと思います🙇‍♂️

【前提】
ruby 2.6.5
rails 6.0.0

ターミナルで「rails s」と入力すると

=> Booting Puma
=> Rails 6.0.3.4 application starting in development 
=> Run `rails server --help` for more startup options
A server is already running. Check /Users/・・・/tmp/pids/server.pid.

「A server is already running.」と表示。「もうサーバーが動いているよ」という
メッセージですが、他のターミナルでもサーバーを立ち上げていませんでした。。。
そんな時は以下2つを試してみましょう(これで解決する人も一定数いるようですが、私の場合はどちらも効果なし)。

①ターミナルを全て閉じて再起動

②server.pidファイルを削除
以下のパスにあるファイルを削除します。

[Railsプロジェクトフォルダ]\tmp\pids\server.pid

正常時は、サーバー終了と同時に削除されるようですが、エラー発生時は残ったままになっていました。

私の場合は上記を行い再度「rails s」を行うと、
「Address already in use」と表示が変わりました。「アドレス?がすでに使われているよ」という
メッセージなのですが、読み換えると「3000番ポートが既に使われているよ」ということのようでした。

ポート3000番を使用しているプロセスを確認するために「lsof -i:3000」と入力。

COMMAND     PID            USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
ruby      33163 username   12u  IPv4 0x8fc4708611018a6f      0t0  TCP localhost:hbci (LISTEN)

そこで、killコマンドを使い実行中のプロセスを削除します。

「kill -9 PID(この場合は33163)」
再度「lsof -i:3000」を実行し何も表示されなければOK。

この状態で「rails s」を実行すると

=> Booting Puma
=> Rails 6.0.3.4 application starting in development 
=> Run `rails server --help` for more startup options
Puma starting in single mode...
* Version 3.12.6 (ruby 2.6.5-p114), codename: Llamas in Pajamas
* Min threads: 5, max threads: 5
* Environment: development
* Listening on tcp://localhost:3000
Use Ctrl-C to stop

成功です!

いきなりサーバーが立ち上がらないと焦ったり不安になりがちですが、
丁寧に状況を把握して地道に仮説・検証を繰り返しましょう!!

1
1
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
1
1