rails serverを起動しようとしたら、以下のようなエラーが表示されて、起動できない場合があります。
$ rails s -b 0.0.0.0
=> Booting Puma
=> Rails 5.2.4.2 application starting in development
=> Run `rails server -h` for more startup options
A server is already running. Check /ディレクトリパス/tmp/pids/server.pid.
Exiting
これはサーバーがすでに実行中のため、起こるエラーです。
この場合の対処法をご紹介いたします。
server.pidのPIDをkillする
/tmp/pids/server.pid内のPIDの番号をkillすればOKです。
server.pidファイルを手動で削除しても、サーバーは起動したままなので、
以下のコマンドを実行し、3000番で動いているプロセスを探し、killします。
$ lsof -i:3000
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
ruby2.5 3033 vagrant 16u IPv4 27499 0t0 TCP *:3000 (LISTEN)
上記のコマンドで判明した、PIDの番号を以下のコマンドでkillします。
$ kill -9 3033
これでサーバーが切れ、うまく起動できます。
参考記事