#はじめに
アプリケーションを起動中にプロセスを終了させずにターミナルを終了させる
↓
「Address already in use :::(ポート番号)」のエラーメッセージ
というような事をもう何度も繰り返しているため、備忘録代わりに記事を投稿します。
#解決方法
###1.lsofコマンドを使用して、現在開いているポートを確認
**lsof[オプション][パス名]コマンドを使用して現在開いているポートを確認して、該当のアドレスを終了させます。
lsofは開いているファイル名を表示させるコマンドで、これに「-i」オプションをつけることで「ネットワーク」が対象になり、さらにポート番号も分かれば「パス名」**にポート番号も入力することで、開いているネットワークアドレスを絞り込むことができます。
// 現在開いているネットワークアドレスを確認(localhost:3000の場合)
lsof -i :3000
//実行結果
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
Node 1234 user 12u Ipv6 102711 oto TCP *:3000(LISTEN)
↑これを次のコマンドで使用します
終了させたいネットワークが出てきました。
その後、下記のコマンドを入力してプロセスを終了させます。
kill 1234
これでOKです。
#まだわからないこと
今回のケースは私の場合Webpackで自分で構成したReactアプリで発生するのですが、「create-react-app」コマンドで作成したReactアプリでは起動中にターミナルを終了させても起こりません。
起動中に終了してもlisten状態のままにならない設定でもあるのでしょうか・・・・
また判明したらここに記そうと思います。