1
0

More than 1 year has passed since last update.

【Rails】ローカルサーバーを起動したときに、"A server is already running."とエラーが出た時の解決方法

Posted at

環境

  • Ruby 2.6.6
  • Rails 6.0.3

エラー内容

Railsアプリのディレクトリ上でローカルサーバーを起動したところ、以下のようなエラーが発生し、アプリにアクセスできない状況になってしまった。
このエラーの内容は、サーバーはすでに実行されているというもの。

ターミナル
$ rails s
=> Booting Puma
=> Rails 6.0.3 application starting in development 
=> Run `rails server --help` for more startup options
A server is already running. Check /your_project_path/tmp/pids/server.pid.
Exiting

原因、仮説

エラーが発生した原因は、ローカルサーバーを停止する前に誤ってターミナルを閉じてしまったことにありそう。
ターミナルを閉じた後もローカルサーバーが動いている状態になっているため、ローカルサーバーが動いているプロセスを終了させれば解決しそう。

解決方法

まず、ローカルサーバーが動くプロセスのIDを調べるために、ターミナルで以下のコマンドを実行する。

ターミナル
$ lsof -i:3000
COMMAND     PID     USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
Google    15466 username   22u  IPv6 0xda4848d42daa87b7      0t0  TCP localhost:55152->localhost:hbci (ESTABLISHED)
ruby      33412 username   14u  IPv4 0xda4848cf62d8e48f      0t0  TCP localhost:hbci (LISTEN)
ruby      33412 username   15u  IPv6 0xda4848d42dab0577      0t0  TCP localhost:hbci (LISTEN)
ruby      33412 username   31u  IPv6 0xda4848d42daaaa17      0t0  TCP localhost:hbci->localhost:54993 (CLOSED)
ruby      33412 username   36u  IPv6 0xda4848d42daab7d7      0t0  TCP localhost:hbci->localhost:55102 (CLOSED)
ruby      33412 username   37u  IPv6 0xda4848d42daabeb7      0t0  TCP localhost:hbci->localhost:55147 (CLOSED)
ruby      33412 username   38u  IPv6 0xda4848d42daada37      0t0  TCP localhost:hbci->localhost:55152 (ESTABLISHED)

ローカルサーバーが動いているプロセスのID(PID)は、COMMANDの値がrubyの33412です。
なお、tmp/pids/server.pid.のファイルを開くことでも確認することができます。

tmp/pids/server.pid.
33412

そして、ローカルサーバーのプロセスを終了させるために、ターミナルで以下のコマンドを実行する。

ターミナル
$ kill -9 33412

これで再度ローカルサーバーを起動することができるようになります。

参考

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