ポート番号でLinuxプロセスを終了する方法:fuser・lsof・netstatの使い方
Linuxマシン上で、特定のポートを使用しているプロセスを停止したいと思ったことはありませんか?
動作が不安定なアプリケーションや、ネットワーク帯域やCPUリソースを大量に消費しているプロセスを放置すると、パフォーマンス低下やセキュリティリスクにつながる可能性があります。
理由は何であれ、ターミナルから「fuser」「lsof」「netstat」コマンド(killコマンドと組み合わせて)を使えば、ポート番号を手がかりにLinuxプロセスを特定し、終了させることができます。これらのコマンドはUbuntuを含む、ほとんどのLinuxディストリビューションで利用可能です。
fuserコマンドでLinuxプロセスを終了する方法
ポート番号を使ってプロセスを終了する最も簡単な方法の一つが、fuserコマンドの活用です。このターミナルコマンドは、ファイルやソケットにアクセスしているプロセスを一覧表示したり、強制終了したりできます。ネットワーク通信を行うアプリケーション(つまり開いているポートを使用するアプリ)は、大抵このどちらかの状態にあります。
作業を始める前に、Linux PCでのコマンドライン操作にある程度慣れておきましょう。

fuserで特定のポート番号を使用しているプロセスを一覧表示するには、次の構文を使用します:
fuser -n protocol port
「protocol」にはtcpまたはudpを、「port」には確認したいポート番号を指定します。例えば、TCPポート80を使用しているプロセスを確認するには、以下を実行します:
fuser -n tcp 80
これにより、そのポートを使用しているプロセスのプロセスID(PID)が出力されます。
これらのプロセスを終了するには、-kオプションを追加します。各プロセスにSIGTERMシグナルが送信され、正常な終了が促されます。例:
fuser -k -n tcp 80
これでTCPポート80を使用しているすべてのプロセスが終了します。
SIGTERMに応答しないプロセスがある場合は、-kの代わりに-KILLを使用します。SIGKILLシグナルが送信され、対象のプロセスを即座に強制終了できます。ただし、データ損失や破損を招く恐れがあるため、慎重に使用してください。例:
fuser -KILL -n tcp 80
これにより、TCPポート80を使用しているすべてのプロセスが強制的に終了します。権限エラーなどで問題が発生した場合は、sudoコマンドでスーパーユーザーとして実行するか、rootユーザーで実行してください。
lsofコマンドでLinuxプロセスを終了する方法
ポート番号を使ってプロセスを終了するもう一つの方法が、lsofコマンドの使用です。このコマンドは、システム上で開いているファイルやソケットを一覧表示できます。

特定のポート番号を使用しているプロセスを一覧表示するには、次の構文を使用します:
lsof -i protocol:port
先ほどと同様に、「protocol」にはtcpまたはudpを、「port」には確認したいポート番号を指定します。例えば、TCPポート53(DNSリクエストに通常使われるポート)を使用しているプロセスを確認するには、次のコマンドを実行します:
lsof -i tcp:53
これにより、そのポートを使用している各プロセスの詳細情報(PIDを含む)が出力されます。
これらのプロセスを終了するには、lsofに-tオプションを付けます。これにより、余計な情報を省いてPIDのみが出力されるため、その結果をkillコマンドに渡すだけで済みます。例:
kill $(lsof -t -i tcp:53)
これにより、TCPポート53を使用しているすべてのプロセスにSIGTERMシグナル(デフォルト)が送信されます。
SIGTERMに応答しないプロセスがある場合は、killの後に-9を指定します。SIGKILLシグナルが送信され、プロセスは即座に強制終了されますが、データ損失や破損のリスクもある点に注意しましょう。例:
kill -9 $(lsof -t -i tcp:53)
これにより、TCPポート53を使用しているすべてのプロセスにSIGKILLシグナルが強制的に送信されます。
netstatコマンドでLinuxプロセスを終了する方法
netstatコマンドを使えば、アクティブなネットワークポートを使用している実行中のプロセスを追跡することもできます。netstatではシステムのネットワーク接続状況や統計情報を確認できるため、問題のあるプロセスを突き止めるのに役立ちます。
ポート番号を使用しているプロセスとそのPIDを一覧表示するには、2つのオプションを組み合わせます。-p(PIDを表示)と-l(リッスン中のソケットのみを表示)です。
さらに、プロトコル(tcp、udpなど)を指定し、必要に応じて状態(LISTENなど)で絞り込むこともできます。例えば、任意のポートでリッスンしているTCPプロセスを確認するには、以下を実行します:
netstat -p tcp -l
これにより、各TCPソケットの情報(PIDを含む)が出力されます。

特定のポートで絞り込むには、-nオプション(ホスト名やサービス名の代わりに数値アドレスを表示)を追加します。アドレス形式は [protocol][@hostname|hostaddr][:service|port] のように指定します。
例えば、ポート80でリッスンしているTCPプロセスを確認するには、以下を実行します:
netstat -p tcp -l -n 80
これにより、ポート80でリッスンしている各TCPソケットの情報(PIDを含む)が出力されます。

これらのプロセスを終了するには、netstatで取得したPIDに対して、任意のシグナルオプション付きのkillコマンドを実行します。例:
kill 1234 5678
これにより、PID 1234と5678のプロセスにSIGTERMシグナル(デフォルト)が送信されます。
SIGTERMに応答しないプロセスがある場合は、killの後に-9を指定します。SIGKILLシグナルが送信され、プロセスは即座に強制終了されますが、データ損失や破損の可能性がある点は前述の通りです。例:
kill -9 1234 5678
これにより、PID 1234と5678のプロセスにSIGKILLシグナルが強制的に送信されます。「1234」の部分は、実際に終了させたいプロセスのPIDに置き換えてください。

Linuxアプリケーションを自在にコントロールしよう
上記の手順を活用すれば、Linuxコマンドラインからポート番号を指定して、実行中のプロセスを素早く終了できます。ただし、プロセスの終了時には十分な注意が必要です。特にSIGKILLシグナルは意図しない副作用を引き起こし、システムの不安定化につながる恐れがあるため、安易な使用は避けましょう。
Linuxのシステムパフォーマンスをより詳しく把握したい方は、メモリ使用量の確認方法をチェックしてみるとよいでしょう。セキュリティリスクが気になる場合は、Linuxのパスワード変更もあわせて検討してください。
新しいLinuxディストリビューションへの乗り換えをお考えなら、初心者にも安心の安定性を誇るLinux Mintがおすすめです。
-
削除・消失したARWファイルを復元する方法|初心者向け完全ステップガイド
大切なARWファイルをうっかり削除してしまったり、SDカードやハードディスクの故障で失ってしまうのは、非常にストレスの多い出来事です。二度と撮れない家族の思い出の写真、プロのカメラマンとしてクライアントに納品すべき作品、あるいはどうしても取り戻したい大切な画像かもしれません。しかし、幸いなことに、そうしたファイルが永久に失われたとは限りません。実は、思っているよりも簡単に復元できるケースが多いのです。この記事では、ARWファイルとは何か、どこで使われているのか、そして誤って削除・紛失したARWファイルをどのように復元するかを詳しく解説します。ARWファイルとは?ARWは「Sony Alpha
-
ソーシャルメディアの知られざる「苦い側面」— ユーモア満載インフォグラフィック集
ソーシャルメディアは昔から人と人をつなぐ存在——そう思っていませんか?実は、そうとも限りません。 確かにSNSは友達とつながったり、自分の意見を発信したりする便利なツールですが、決して無視できない「もう一つの顔」も持っています。賛否はあるものの、私たちの多くはソーシャルメディアに対して、愛憎入り混じった複雑な感情を抱いているのではないでしょうか。 そこで今回は、パロディ好きな方にぴったりの、ユーモアあふれるインフォグラフィックとウィットに富んだ一言をご紹介します。主要なSNSプラットフォームそれぞれの「厳しい現実」を、笑いながら垣間見てみましょう。 ぜひ最後までご覧いただき、感想もぜひお聞かせ