【Rails】rails s できない時にサーバーを強制終了する

Railsサーバーが何らかの原因で急にシャットダウンし、再起動しようと$ rails sしようと思っても、

A server is already running.

と言われる。

すでにサーバー起動してるよと言われても、実際はサーバーを起動できなくて困る、なんてエラーがたまに起こります。

$ rails s
=> Booting Puma
=> Rails 7.0.3 application starting in development 
=> Run `bin/rails server --help` for more startup options
A server is already running. Check /Users/ユーザー名/Desktop/Ruby_on_Rails/user-authentication/tmp/pids/server.pid.
Exiting

どうやらバックグランドではサーバーが動いたままなので、これをどうにかして強制終了させたい。

そこで、以下のコマンドを実行すると、

$ lsof -wni tcp:3000
$ lsof -wni tcp:3000
COMMAND    PID    USER      FD   TYPE             DEVICE SIZE/OFF NODE NAME
ruby      9807  ユーザー名   10u  IPv4 0x9e287b17ee747f09      0t0  TCP 127.0.0.1:hbci (LISTEN)
ruby      9807  ユーザー名   11u  IPv6 0x9e287b0e56bf7ac1      0t0  TCP [::1]:hbci (LISTEN)
ruby      9808  ユーザー名   10u  IPv4 0x9e287b17ee747f09      0t0  TCP 127.0.0.1:hbci (LISTEN)
ruby      9808  ユーザー名   11u  IPv6 0x9e287b0e56bf7ac1      0t0  TCP [::1]:hbci (LISTEN)

バックグラウンドで動いているサーバー情報が表示されます。

サーバーを強制終了するためには、このリストの中のPID番号を利用して、以下のコマンドを実行します。

$ kill -9 PID番号

表示されているPID番号のプロセス全てに対して上記コマンドを実行後、再びターミナルで、

$ rails s

すれば無事にサーバーが起動するはずです。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

愛知の34歳。無職で暇になり始めたプログラミング(Ruby on Rails)の忘備録をまとめたブログです。最近は別にやりたいことができたのでプログラミングほぼやっていません。気が向いたらまた再開するかも。僕の日常はメインブログの方で更新しています。

コメント

コメントする

目次