親バカエンジニアのナレッジ帳

webのエンジニアをやっており、日頃の開発で詰まったことや書き残しておきたいことを載せています。

特定のポートを使用しているプロセスを確認して強制終了させる


プロセスが起動中なのにPIDがわからないから削除できない

プロセスで困ったこととして、例えば以下のことがありませんか?

  • IDEでアプリケーションを起動して開発をしていたが、IDEが途中で落ちてしまった。アプリケーションを終了していないのでプロセスが起動中だが、プロセス(PID)がわからない
  • サーバ上でアプリを起動させようとした時に、「そのポートは使用中だよ」的なメッセージが出て起動できない

プログラミングをよくやられる方ならどちらも一度は経験しているのではないでしょうか。
いずれにせよ、このような場合はポートを使用しているプロセスを確認して強制終了させるしかありません。

ポート番号からプロセスを確認

使いたいポート番号のプロセスを確認したい時は以下でOK!
※ポートは例として8080にしています。「-i」はネットワークソケットファイルの表示という意味ですが、ちょっと難しいのであまり意味を考えなくてもいいのではないでしょうか。

lsof -i:8080

すると、以下のように使用中のプロセスを確認できます。

killを使ってプロセスを強制終了

あとはkillを使えばそのプロセスを終了させられます。
今回で言えば、上記キャプチャのPIDに当たる部分、つまり49137を指定します。

kill -9 49137

これでOKです!
とても簡単な手順ですよね。


新しいLinuxの教科書

新しいLinuxの教科書

[試して理解]Linuxのしくみ ~実験と図解で学ぶOSとハードウェアの基礎知識

[試して理解]Linuxのしくみ ~実験と図解で学ぶOSとハードウェアの基礎知識

日経Linux 2018年 7 月号

日経Linux 2018年 7 月号

入門者のLinux 素朴な疑問を解消しながら学ぶ (ブルーバックス)

入門者のLinux 素朴な疑問を解消しながら学ぶ (ブルーバックス)