特定のポートがどのプロセスによって占有されているかを確認するにはどうすればよいですか?

Web 開発を行う学生は、自分のプログラムが使用するポートが占有されている状況によく遭遇すると思いますが、このとき、同じポートを占有しているプログラムを見つけて閉じてから、自分のプログラムを起動する必要があるため、ポートを占有しているプログラムをすぐに見つけることができ、時間を大幅に節約できます。次に、この記事では Linux、MacOS、Windows での対応方法を説明します。この記事はクイックリファレンスマニュアルとしてご利用いただけます。

Linuxシステム

1. フューザーコマンドを使用する

fuser コマンドは、どのプログラムがディスク上のファイル、マウント ポイント、さらにはネットワーク ポートを現在使用しているかを表示し、プログラム プロセスに関する詳細情報を提供します。コマンドは次のとおりです。

# fuser -v 80/tcp 
                     USER        PID ACCESS COMMAND
80/tcp:              www        4569 F.... nginx

このポートを占有しているプロセスの詳細を確認できます。ポートを占有しているプロセスを見つけて強制終了することが目的の場合は、次の 1 ステップで実行できます。

fuser -k 80/tcp

2.lsofコマンドを使用する

lsof は、開かれたファイルのリストの略で、プロセスが開いているファイルと、開いているファイルに関連付けられているファイルを見つけるために使用されます。lsof コマンドを使用すると、指定したポートに基づいて、対応するプロセス情報を見つけることもできます。例は次のとおりです。

# lsof -i:80
COMMAND     PID USER   FD   TYPE    DEVICE SIZE/OFF NODE NAME
nginx      4569  www    7u  IPv4  12379828      0t0  TCP *:http (LISTEN)
nginx     29535 root    7u  IPv4  12379828      0t0  TCP *:http (LISTEN)

3. netstat コマンドを使用します。

netstat コマンドは、ネットワーク接続、ルーティング テーブル、ネットワーク インターフェイス情報などを表示し、指定されたポートに応じて対応するプロセス情報を見つけることができます。例は次のとおりです。

# netstat -tlnp | grep 80
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      4569/nginx: worker  

4. ssコマンドを使用する

ss コマンドは、ネットワーク ポートを含む、現在のシステムで開いているソケット情報を一覧表示できます。指定したポートに従って、対応するプロセス情報を見つけることができます。例:

# ss -tlnp | grep 80
LISTEN     0      511          *:80                       *:*                   users:(("nginx",pid=29535,fd=7),("nginx",pid=4569,fd=7))

macOS システム

Linux システムでの使用法と同様の lsof コマンドを使用します。使用法は次のとおりです。

# lsof -i:80

次のように使用することもできます。

lsof -i -P -n | grep LISTEN | grep 80

Windowsシステム

cmd に次のコマンドを入力して、ポートを占有しているプロセスを見つけます。

netstat -ano | findstr 8088

対応するプロセス ID を見つけた後、プロセス ID を通じて対応するプロセス名を見つけることができます。コマンドは次のとおりです。

tasklist | findstr 进程ID

対応するプロセスを強制終了します。コマンドは次のとおりです。

taskkill /pid 进程ID -f

まとめ

この記事では、特定のポートがどのプロセスによって占有されているかを確認するためのいくつかの実用的な方法について説明します。一般的には、対応するプロセスを見つけて閉じることです。Linux および MacOS では次のコマンドを使用できます。

kill 进程ID 
//强制kill
// kill -9 进程ID 

Windows のコマンドについては上で説明したため、ここでは説明しません。

おすすめ

転載: blog.csdn.net/luduoyuan/article/details/131840159
おすすめ