3
3

Rails Server が正常に終了しない場合の対処法

Last updated at Posted at 2024-02-22

事象

Rails Server を使用している際、通常は Ctrl + C を使用して終了しますが、サーバーが正常に終了しない場合があります。再度 bin/rails s コマンドで Rails Server を起動しようとすると、以下のようなエラーが発生することがあります。

% bin/rails s                                        
=> Booting Puma
=> Rails 7.0.4.3 application starting in development 
=> Run `bin/rails server --help` for more startup options
A server is already running. Check /path/to/your/project/tmp/pids/server.pid
Exiting

こちらのエラーメッセージは Rails Server が既に実行中であることを示しており、正常に終了していない、或いは異常終了して プロセスID(PID) ファイルが残っていると表示されます。Rails はサーバーを起動するとき tmp/pids/server.pid ファイルに現在実行中のサーバープロセスの PID を記録します。このファイルが存在すると新たにサーバーを起動しようとするとき、既にサーバーが実行中であると判断され、上記のエラーメッセージが表示されてサーバーの起動が中止されます。

対処法

今回のエラーを解消するためには、エラーメッセージに表示されているパスにある server.pid ファイルを削除します。

rm /path/to/your/project/tmp/pids/server.pid

PID ファイルを削除しても問題が解決しない場合、lsof コマンドを使用して該当するポート(通常は Rails のデフォルトである3000番ポート)を使用しているプロセスを見つけて終了させることができます。

lsof -i :3000

このコマンドは、3000番ポートを使用しているプロセスのリストを表示します。出力結果から PID を探します。そして見つけた プロセスID を使用してプロセスを終了させます。

kill -9 <PID>

<PID> は前のコマンドで見つけた プロセスID に置き換えます。-9オプション はプロセスを強制終了させるために使用されます。

自らの備忘録のために投稿してますが、なにかお役に立てましたら幸いです!:clap:
また、なにか間違ってましたらご指摘いただけますと幸いです!:pray:

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