【Rails】サーバ起動時にA server is already running…と出た時の対処法

つい先ほど初めて遭遇したエラーがあったので書き留めておこうと思います。

Railsのサーバー起動時に関するエラーです。

スポンサードリンク

サーバーが起動しない

Webアプリケーション開発をRailsで行う際に必要不可欠なコマンド「rails s」ですが、そのコマンドをいつも通り打ち込んだ時にそのエラーに遭遇しました。

>rails s
=> Booting Puma
=> Rails 5.1.6 application starting in development
=> Run `rails server -h` for more startup options
A server is already running. Check C:(アプリケーションのディレクトリ)/tmp/pids/server.pid.
Exiting

サーバーが起動しません。「既にサーバーは動いています」とのエラーが。丁寧にエラーに対する処理が記述されています。

A server is already running. Check C:(アプリケーションのディレクトリ)/tmp/pids/server.pid.

どうやらこのディレクトリにあるserver.pidが原因だとか。

このエラーに対する対策

ターミナルもしくはコマンドプロンプトに表示された通りにserver.pidを見に行きましょう。

恐らく指定されたディレクトリに指定のファイルがあるはずです。見つけたら容赦なく「server.pid」を削除しましょう。

その後、改めて「rails s」

>rails s
=> Booting Puma
=> Rails 5.1.6 application starting in development
=> Run `rails server -h` for more startup options
*** SIGUSR2 not implemented, signal based restart unavailable!
*** SIGUSR1 not implemented, signal based restart unavailable!
*** SIGHUP not implemented, signal based logs reopening unavailable!
Puma starting in single mode...
* Version 3.11.4 (ruby 2.4.4-p296), codename: Love Song
* Min threads: 5, max threads: 5
* Environment: development
* Listening on tcp://0.0.0.0:3000
Use Ctrl-C to stop
Started GET "/" for ----- at 2018-07-02 23:25:44 +0900
   (1.0ms)  SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC
Processing by PagesController#index as HTML
  Rendering pages/index.html.erb within layouts/application
  Rendered pages/index.html.erb within layouts/application (8.6ms)
  Rendered partial/_navbar.html.erb (1.0ms)
Completed 200 OK in 2744ms (Views: 2575.8ms | ActiveRecord: 0.0ms)

ちゃんと起動しました。一件落着。

エラーの原因

このエラーはどうやら環境依存で起こるらしく、前回アプリケーション終了時に正しく終了されなかったときに起きる現象のようです。

Railsでアプリケーションを終了させるときはCtrl + Cでしっかり終了させてから接続を切ることにしよう…ちょっと思い当たる節があるのでこれからは気を付けます。

ちなみに

  • Windows 10 Home
  • RAM 8.00GB
  • Intel Core i5-7200U CPU
  • x64ベースプロセッサ
  • VScode

でこのエラーに遭遇しました。ご参考までに。

スポンサードリンク

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です