web-dev-qa-db-ja.com

特定のポートで実行中のプロセスをどのように見つけて(そして殺して)いいですか?

重複の可能性:
Linuxで特定のポートを使用しているプロセスを見つける

Ubuntu Linux 11.04を使用しています。ポート4444で実行中のプロセスを見つけてプロセスを強制終了するシェルスクリプト式をどのように記述すればよいですか?

31
Dave

lsofを使用してプロセスを見つけることができます。

lsof -t -i:4444

ポート4444でリッスンしているプロセスのpidのみをリストします。

kill `lsof -t -i:4444`

あなたが勇敢だったなら。

49

lsofを使用します:

# lsof -n | grep TCP | grep LISTEN | grep 4444

出力は次のようになります。

pname 16125 user 28u IPv6 4835296 TCP *:4444 (LISTEN)

最初の列はプロセス名、2番目の列はプロセスIDです。次に、出力を解析し、プロセスID(PID)を見つけ、killコマンドを使用してそれを強制終了します。

7

または、netstat -aplsofがシステムで利用できない場合(私が定期的に使用しているbusyboxシステムでは利用できないため)。

2
DaveRandom
kill -9 `netstat -lanp --protocol=inet | grep 4444 | awk -F" " '{print $7}' | awk -F"/" '{print $1}'`

Netstatを使用して、数値ポートと親プロセスを持つリスニングINETソケットをリストします。文字列4444をフィルターし、7番目の列(pid /プロセス名)を取り出し、さらに "/"で分割してpidを取得します。これをkillコマンドに渡します。

2
Arek B.