サーバーを起動しようとすると以下がでるときの対処法を数種類まとめました!
どれかで解決できる(はず)。
❯ rails s
=> Booting Puma
=> Rails 5.0.7.2 application starting in development on http://localhost:3000
=> Run `rails server -h` for more startup options
A server is already running. Check プロジェクト名/tmp/pids/server.pid.
Exiting
何種類もあるため、上手くいかないときは順番に試してみるコトをおすすめします。
まず確認すること
たまにMac標準のターミナルでサーバー起動状態
& VSCodeなどのテキストエディタ上のターミナルでサーバー起動しようとしている
方がいるので、
まずは別のターミナルで既にサーバーを動かしていないかを確認しましょう!
パターン①
railsのプロセス
を削除する
$ ps aux | grep rails
user 28321 s001 S+ 0:00.00 grep rails
$ kill -9 28321
$ rails s
→ 解決
パターン②
ポート番号3000番のプロセス
を削除する
$ lsof -wni tcp:3000
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
ruby 28295 user 21u IPv4 0x77d8a30cabb79cc9 0t0 TCP 127.0.0.1:hbci (LISTEN)
ruby 28295 user 22u IPv6 0x77d8a30cac93f9f9 0t0 TCP [::1]:hbci (LISTEN)
# 「COMMAND」に「ruby」と書いてある行のPIDをコピーして処理を停止(今回は28295)
$ kill -9 28295
$ rails s
→ 解決
パターン③
サーバー起動の際に使用するID
を削除する
$ rm /tmp/pids/server.pid
$ rails s
→ 解決
このファイルの場所は[アプリ名]/tmp/pids/server.pid
に入っているので、パスを指定して削除します。
本来、サーバーを終了するとこのファイルは削除されますが、残ったままでエラーになっている可能性があるみたいです。
※ server.pid
はサーバー起動や終了で勝手に作られたり削除されたりするので、普段は気にしなくて良いです。
まとめ
頻繁に出てきたkill -9 ○○
はLinuxコマンド
の一つで、プロセスを終了するためのものです。
個人的には、パターン②ですんなりプロセスを終了出来ることが多い気がします。
サーバーの立ち上げで足止めをくらうと萎えるので、さくっと解決してください!