サーバーが起動しない!「A server is already running」で私が対処した事
こんにちは。
プログラミングにはエラーはつきもの。そして、初心者であればあるほどパニックになって先に進まない事が多くあると思います。私が正しくそうです..。
今日は、ターミナルで起こったエラーを解決した方法について記載していきます。
【発生原因】
ターミナルでローカルサーバー起動。rails s でページの遷移を確認中、サーバーが処理していた時に(ぐるぐるマークが表示されていた時に)誤ってターミナルを閉じてしまいました...。再度ターミナルを立ち上げてサーバーを起動しようとしましたが、エラーが発生し、起動することができなくなりました。
エラー文は、タイトルの通り、A server is already runningという記載が。
ターミナルはサーバーを閉じている認識だが、ローカルサーバーは起動したままという状態に。
※エアコンをリモコンで「消す」ボタンを押して止めたはずが、リモコンの表示のみ消えていて、エアコンはついたまま、みたいな感じでしょうか...?
【対処法①】※結果、解決せず...ここで解決する方も!
ターミナルを再起動。
とりあえず、何でも再起動したら治るじゃないですか。(安直)
しかし、上記の通り治らず。これで治る方もいるようですので、試して見る価値はあるかと思います。
【対処法②】※結果、解決せず...ここで解決する方も!
Railsフォルダtmp\pids\server.pid
上記内にあるファイルの削除。
調べたところ、サーバー起動中のみこのファイルが存在するようですが、私が誤った閉じ方をしたため、このファイルが残ったままでした。このファイルを手動で削除し再度確認しましたが、解決せず...しかし、エラー文に変化あり。
Address already in use - bind(2) ----
上記のようになりました。
要は、既にこのポートはまだ使っているとの事。
【対処法③】※ココで解決!
lsof -i :3000
上記をターミナルで実行。3000番のポートに接続している一覧を確認。
→kill -QUIT <表示されたPID番号>
上記を実行して、再度サーバーを立ち上げたところ、無事に繋がることができました!
無事で良かったです。PCの不具合やエラーはほぼ全て自分の責任。
以後も壁にぶちあたりながらPCと仲良くやっていきます。