はじめに
2021/9~エンジニアしている高橋と申します。
業務でぶち当たったエラーの対処法をまとめていきます。
※あと最近見た映画「ブルージャイアント(BLUE GIANT)」の感動シーンを最後に載せます
エラー内容
=> Booting Puma
=> Rails 6.0.4.4 application starting in development
=> Run `rails server --help` for more startup options
A server is already running. Check /home/XXXXXXXXXX/tmp/pids/server.pid.
Exiting
パッと見た瞬間のワイ
「なんじゃらほい・・・」(´-ω-`)
エラーメッセージの意味を理解する
Railsサーバーを起動しようとした際に既にサーバーが起動しているために発生するエラーです。
このエラーは、以下のような意味があります。
-
「A server is already running.」
: サーバーは既に実行中です。 -
「Check /home/XXXXXXXXXX/tmp/pids/server.pid.」
: サーバーのプロセスIDが記録されたserver.pidファイルを確認してください。
つまり、サーバーが既に起動しており、server.pidファイルにはそのプロセスIDが記録されているため、再度サーバーを起動することができないというエラーです。
このエラーを解決するには、以下の手順を実行する必要があります。
1. server.pidファイルを確認する
2. 既に起動しているサーバーのプロセスIDを終了する
3. server.pidファイルを削除する
4. サーバーを再起動する
5. 上記の手順を実行することで、サーバーを再起動することができます。
server.pidファイルを確認する
エラーメッセージにあるように、まずはサーバーのプロセスIDを記録したserver.pidファイルを確認しましょう。
server.pidファイルは、Railsアプリケーションのtmp/pidsディレクトリにあります。
次のコマンドでserver.pidファイルを確認できます。
$ cat tmp/pids/server.pid
既に起動しているサーバーのプロセスIDを終了する
server.pidファイルに記録されているプロセスIDをkillコマンドで終了しましょう。
次のコマンドで、ポート番号3000を使用しているプロセスを調べることができます。
$ lsof -i:3000
上記コマンドを実行すると、プロセスIDとプロセス名が表示されます。
プロセスIDを確認したら、次のコマンドでプロセスを終了しましょう。
$ kill <プロセスID>
# それでもキルされなかったら以下を実行して強制的にキルする
$ kill -9 <プロセスID>
server.pidファイルを削除する
プロセスが終了したら、server.pidファイルを削除します。
次のコマンドで削除できます。
$ rm tmp/pids/server.pid
サーバーを再起動する
これで、サーバーを起動することができます。
以下のコマンドでサーバーを起動してください。
$ rails server
これでいけるはず…‼
できなかったらコメントなどください~!
おわりに
最後に感動シーンを…
3人バンドのドラマーの玉田が2人のレベルについていけず打ちひしがれている場面。
観客の老人が声をかけてくれる…
見てくれる人はその人の見てくれてるんですね。
グッとくる個人的名シーンです!
最後まで読んでいただきありがとうございます!
Twitterやてます~
https://twitter.com/takazu_engineer