Linux上でVSCodeでGolangのWebアプリケーションを開発しているが、
デバッグ実行中、goroutine内でPanicが起きた時などに、
VSCode上でデバッグを中止してもListenしているプロセスが死なず、
再度実行しようとした時にポートが塞がっていて実行できない現象が起きる。
killすればいいだけだが、netstatでプロセスIDを調べて、そのIDを渡す…というのが面倒。
もっと直感的な「TCP何番をListenしているプロセスをKILLする」というコマンドを打ちたい。
これでいける。
lsof -t -i:《ポート番号》 -sTCP:LISTEN | xargs -r kill
※対象となるプロセスが無い場合にkillのUsageが出ないように、xargsのオプションに-rを追記しました。
@angel_p_57 さんコメントありがとうございます。
プロセスが無いとkillコマンドのUsageが出るが気にしないことにする。
気になる人はこうでもすればいいのでは。
lsof -t -i:《ポート番号》 -sTCP:LISTEN | xargs kill 2> /dev/null