はじめに
タイトル通りです。自身の備忘録としてQiitaへ初投稿させていただきます。
ターミナル上で以下のエラー文が表示され、起動できなくなりました。
itoshin@mbp "ファイル名" % rails s
=> Booting Puma
=> Rails 6.0.3.7 application starting in development
=> Run `rails server --help` for more startup options
A server is already running. Check /Users/itoshin/"ファイル名"/tmp/pids/server.pid.
A server is already running.
直訳すると、「すでにサーバーが起動しています。」とのこと。
しかし、製作中のサイトをローカル上で読み込もうとしても動作せず、確認することができません。
原因について
Ctrl + C
でローカルサーバを実行して終了したつもりが、Ctrl + Z
を押してしまったからです。
ターミナルに打ち込んだ^Z
の表示を見て、気がつきました。
itoshin@mbp "ファイル名" %
実行後、上記のように見慣れたプロンプトのみの表示になりました。
一見、ローカルサーバが起動していないように見えるのですが、実はバックグラウンド上で起動した状態になっております。
対処方法
ローカル上で動いているプロセスを見つけ出し、kill
を実行します。
まず、以下のコマンドを実行します。
itoshin@mbp "ファイル名" % lsof -i:3000
このlsof -i:3000
というlsofコマンド
の詳細を明記します。
コマンド名 | 説明 |
---|---|
lsof | オープンしているファイルを一覧表示する |
-i:3000 | ローカル(3000番)のネットワークソケットファイルを指定する |
実行後、下記のようなものがターミナル上に表示されます。
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
ruby 29088 itoshin 13u IPv4 0x57e8cc5b4f41b215 0t0 TCP localhost:hbci (LISTEN)
ruby 29088 itoshin 14u IPv6 0x57e8cc5b5416fe15 0t0 TCP localhost:hbci (LISTEN)
ruby 29088 itoshin 19u IPv6 0x57e8cc5b52360475 0t0 TCP localhost:hbci->localhost:58355 (CLOSE_WAIT)
PID番号が「29088」と表示されています。(PID番号は都度変わります)
こちらの番号を指定してkill -9 "PID番号"
を実行します。
すると下記(2行目以降)のような表示が出力されます。
itoshin@mbp "ファイル名" % kill -9 29088
itoshin@mbp "ファイル名" %
[1] + killed rails s
再度下記のコマンドを実行し、まだバックグラウンド上で起動していないか確認します。
itoshin@mbp "ファイル名" % lsof -i:3000
実行後、プロンプトのみの表示が出ればOKです。
再度rails s
を実行し、サーバーを起動させます。
itoshin@mbp "ファイル名" % rails s
=> Booting Puma
=> Rails 6.0.3.7 application starting in development
=> Run `rails server --help` for more startup options
Puma starting in single mode...
* Version 3.12.6 (ruby 2.6.5-p114), codename: Llamas in Pajamas
* Min threads: 5, max threads: 5
* Environment: development
* Listening on tcp://localhost:3000
Use Ctrl-C to stop
無事、ローカルサーバが起動しました。
おわりに
丁寧に記載したつもりですが、プログラミング初学者のため至らない部分があるかもしれません。
間違いなどございましたら、お手数ですがコメントいただけると幸いです。
よろしくお願いします。
参考記事