重複の可能性:
Linuxで特定のポートを使用しているプロセスを見つける
Ubuntu Linux 11.04を使用しています。ポート4444で実行中のプロセスを見つけてプロセスを強制終了するシェルスクリプト式をどのように記述すればよいですか?
lsof
を使用してプロセスを見つけることができます。
lsof -t -i:4444
ポート4444でリッスンしているプロセスのpidのみをリストします。
kill `lsof -t -i:4444`
あなたが勇敢だったなら。
lsof
を使用します:
# lsof -n | grep TCP | grep LISTEN | grep 4444
出力は次のようになります。
pname 16125 user 28u IPv6 4835296 TCP *:4444 (LISTEN)
最初の列はプロセス名、2番目の列はプロセスIDです。次に、出力を解析し、プロセスID(PID)を見つけ、kill
コマンドを使用してそれを強制終了します。
または、netstat -ap
lsof
がシステムで利用できない場合(私が定期的に使用しているbusyboxシステムでは利用できないため)。
kill -9 `netstat -lanp --protocol=inet | grep 4444 | awk -F" " '{print $7}' | awk -F"/" '{print $1}'`
Netstatを使用して、数値ポートと親プロセスを持つリスニングINETソケットをリストします。文字列4444をフィルターし、7番目の列(pid /プロセス名)を取り出し、さらに "/"で分割してpidを取得します。これをkillコマンドに渡します。