サーバーがすでに立ち上がっているのにlocalhostがひらけない【Rails】
現象
・http://localhost:3000/にアクセスするが、ページが表示されない。
・railsでserverを起動するも、以下が表示される。
A server is already running. Check 〜〜/project/rails_app/tmp/pids/server.pid.
試したこと
エディタの再起動
→VSCodeのターミナルを利用していたので、再起動しました。
ちょうどVSCodeのアップデートが入ったのでこれかなと思いましたが関係ありませんでした。
エラーの確認
Checkと書いてあったので、server.pidを確認しました。IDが書かれていました。
tmpファイルなので、一旦コピーして削除してみました。
Pumaが動き出したり、反応がありました。
最終的に
Address already in use - bind(2) for "127.0.0.1" port 3000 (Errno::EADDRINUSE)
となり、ポートが既に使われているようです。
ただ、pidはプロセスIDで、そのIDファイルを消してもプロセス自体は
消えないので意味はなかったようです。
調査
ポートが何に使われているかターミナルで確認します。
lsof -i:3000
lsof:オープンしているファイルを一覧表示する
-i:ネットワークソケットを対象とする。
3000:3000番portを対象とする。
結果、同じpidのプロセスが起動していたので、削除しました。
kill -9 プロセスid
kill:プロセスおよびジョブを終了させるコマンド
-9:強制終了させるシグナル
pid:Isofで確認した、もしくは、/tmp/pids/server.pid.
に記載されているpid
結果
無事、rails s
でサーバーを起動できました。
ディスカッション
コメント一覧
まだ、コメントがありません