GNU/Linux >> Linux の 問題 >  >> Linux

特定のポートで実行中のLinuxプロセスを強制終了する方法

Linuxでは、プロセスとポートは共生関係にあります。一方は他方なしでは存在も機能もできません。プロセスはポートを共有する傾向があり、一部のプロセスはオペレーティングシステムの目的を達成するために特定のポートに依存しています。

この記事ガイドでは、あるプロセスで使用されていたポートを解放して、別のプロセスで使用する方法について説明します。

ポートとそれに関連するプロセスを一覧表示する方法

ターゲットポートとプロセスを一覧表示できる場合PID 、それに関連付けられているプロセスを強制終了できます。 Linuxでアクティブに使用されているポートを一覧表示するために使用できるツールがいくつかあります。

より柔軟な推奨またはアプローチは、ネットワーク統計(netstat)コマンドまたはssコマンドを使用することです。 ( netstatよりも高速 )。ほとんどのLinuxディストリビューションではデフォルトのインストールですが、存在しない場合は次のコマンドでインストールできます。

LinuxにNetstatとSSコマンドをインストールする

$ sudo apt-get install net-tools iproute   [On Debian/Ubuntu & Mint] 
$ sudo dnf install net-tools iproute       [On CentOS/RHEL/Fedora and Rocky Linux/AlmaLinux]
$ pacman -S netstat-nat iproute            [On Arch Linux]
$ emerge sys-apps/net-tools iproute        [On Gentoo]
$ sudo dnf install net-tools iproute       [On Fedora]
$ sudo zypper install net-tools iproute    [On openSUSE]

ポートを一覧表示し、特定のプロセスまたはサービスにロックされているかどうかを確認するには、次の構文規則に従ってください。

$ sudo netstat -ltnp | grep -w ':[targeted_port]'
OR
$ ss -ltnp | grep -w ':[targeted_port]'

たとえば、ポート 80をリッスンしているプロセスまたはサービス 次の方法でリストできます。

$ sudo netstat -ltnp | grep -w ':80'
OR
$ ss -ltnp | grep -w ':80'

コマンド文字列の下で“ netstat -ltnp 」、オプション-p 1520を指す これは、強制終了するプロセスのPIDです。注意してください。

Linuxでダミープロセスを作成する方法

Linuxオペレーティングシステムのエコシステムを台無しにしないために、いくつかのダミープロセスを作成し、それらを使用してこの記事の目的を示します。 「socat」を使用します 」デモプロセスを作成するためのコマンドラインユーティリティ。

SCTPの下に3つのプロセスを設定しましょう 、 TCP 、および UDP それぞれプロトコル。これらの新しいプロセスを9999のようなランダムなポートにバインドします 。

次のコマンドは、 PIDを使用して一時的なプロセスを生成します (プロセスID )の 8695

$ socat sctp-listen:9999,bind=127.0.0.1 stdout &

次のコマンドは、 PIDを使用して一時的なプロセスを生成します (プロセスID) 9080

$ socat tcp-listen:9999,bind=127.0.0.1 stdout &

次のコマンドは、 PIDを使用して一時的なプロセスを生成します (プロセスID) 9270

$ socat udp-listen:9999,bind=127.0.0.1 stdout &

PID(プロセスID)を使用してプロセスを強制終了する方法

"kill -9"を使用する コマンドを使用すると、別の優先プロセスで使用するポート番号を人質に保持しているプロセスを取り除くことができます。この場合、PID 8695を使用して3つのプロセスを作成しました 、 9080 、および 9270

PID 8695でプロセスを強制終了するには 、次のコマンドを実行しました:

$ kill -9 8695

一度に複数のプロセスを強制終了することもできます。作成されたプロセスをPIDで強制終了するには9080 および9270 、次のようなコマンドを使用します:

$ kill -9 9080 9270

1つのプロセスを同時に強制終了する場合でも、複数のプロセスを同時に強制終了する場合でも、killコマンドを実行します。 上に示したように、空のターミナルインスタンスにつながるはずです。

プロセスがアクティブでなくなったことを確認するために、killコマンドを再実行してみます。 :

$ kill -9 8695

エラーメッセージは、プロセスがアクティブでなくなったことを示します。また、最近強制終了された2つのプロセス [2] 9080 および[3]9270 アクティブではなくなったものとして表示されます。

ファイナルノート

実行中のプロセスを強制終了するルールは単純です。まず、「 netstat」で使用するポートを特定します 」または「ss」 コマンドを実行してから、 PIDをメモします プロセスに添付されています。最後に、「kill-9」を使用します 識別されたPIDと一緒にコマンド そのプロセスを取り除くために。


Linux
  1. Linuxでゾンビプロセスを強制終了する方法

  2. Linuxで実行中のプロセスを再起動(またはリセット)する方法は?

  3. ポート 80 で実行中のプロセスを強制終了する

  1. Linuxで実行中のプロセスを強制終了する方法

  2. Linuxの特定のポートで実行されているプロセスを強制終了する方法は?

  3. コマンドを使用してLinuxでプロセスを強制終了する方法は?

  1. 特定のポートで実行されている rmiregistry を閉じるには?

  2. Linux の特定のポートで実行されているプロセスを強制終了するには?

  3. Linux でプロセスを一時停止/再開する方法