見出し画像

【Railsエラー集】A server is already running.

こんにちは。

Kei(@kei__247)です。

朝から作業をスタートすようと思ったら、早速エラーに遭遇したのでメモがてらnoteを残しておきます。

A server is already running.となった背景

【背景】
・前日、Railsサーバーを落とさずにPCを閉じていた
・朝になって、http://localhost:3000でアクセスしようと思ったら、サイトが表示されない
・rails sでエラー発生

今回のエラーが発生するまでの経緯はこんな感じです。

・前日、Railsサーバーを落とさずにPCを閉じていた

ことが今回のエラーの原因だと思います。

実際はこんなエラー表示となりました。

rails s
=> Booting Puma
=> Rails 6.1.4 application starting in development 
=> Run `bin/rails server --help` for more startup options
A server is already running. Check (プロジェクトまでのパス)/tmp/pids/server.pid.
Exiting


エラー解決方法【server.pidを削除する

結論からお話すると、「server.pidを削除する」して、再度rails sコマンドを入力するとエラーは解決できるかと思います。

tmp/pids/server.pid   ← これを削除する

server.pidファイルを削除して、新しいターミナルでrails sコマンドを実行してみてください。

おそらくエラーは解消されているかと思います。

少し深掘りしておくと、railsサーバーの「開始」「停止」に伴って、以下のような作業が行われています。

・サーバー開始:server.pidが生成される
・サーバー停止:server.pidが削除される

実際に、サーバーの開始(rails s)とctrl + cでファイル(server.pid)の変化を確認してみてください。

A server is already running.となってしまった原因の推測

あくまで、僕個人の推測ですが、今回のエラーが発生した理由はこんな感じかなと推測しています。

【推測】
・サーバーの停止忘れ
→server.pidが削除されずに残った
・server.pidは保持されたまま、サーバーは内部的にダウンした。
→サイトは表示されない。
・朝イチにrails sコマンド入力
→server.pidが存在するので、エラー発生


まとめ

エラー解決方法【server.pidを削除する】

今回のエラーをきっかけにアプリケーション関連のサーバーについても少し勉強してみました。

もし興味のある方は参考がてらに読んでみてください。

サーバー関連ブログ
>>>【Puma】Rails 5.2 + Puma + Nginx のデプロイ設定
>>>リバースプロキシとプロキシの違いとは?それぞれのサーバーの仕組みは?
>>>ソケットとは|「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典


いいなと思ったら応援しよう!