Linuxでは、fuser -k 9000/tcp
を使用して、リッスンしているポートのみを知っているプロセスを強制終了できます。MacOSでも同じようにするにはどうすればよいですか?
lsof -P | grep ':PortNumber' | awk '{print $2}' | xargs kill -9
PortNumber
を検索する実際のポートに変更します。
Lsofに-tフラグと-iフラグを追加すると、grepとawkの必要がなくなるため、速度がさらに向上します。
lsof -nti:NumberOfPort | xargs kill -9
このコマンドでポートが開いているかどうかを確認できます
Sudo lsof -i :8000
8000はポート番号です
ポートが開いている場合は、プロセスID(PID)を含む文字列を返す必要があります。
このPIDをコピーし、
kill -9 PID
開いているすべてのポートを確認する必要がある場合は、ネットワークユーティリティアプリケーションでポートスキャンを実行できます。
Lsofに-nを追加すると、コマンドからDNS逆引き参照が削除され、実行時間が数分から数秒に短縮されます。
lsof -Pn | grep ':NumberOfPort' | awk '{print $2}' | xargs kill -9
Sudo lsof -i:{PORT_NUMBER}
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
Java 582 Thirumal 300u IPv6 0xf91b63da8f10f8b7 0t0 TCP *:distinct (LISTEN)
2.プロセスPIDを強制終了してポートを閉じます
Sudo kill -9 582
kill -9 $(lsof -i:PORT -t) 2> /dev/null
を使用できます。PORTは実際のポート番号です。指定されたポートで実行されているプロセスを強制終了します。
GUIを備えたツールが必要な場合は、以下を使用できます。 https://github.com/ayedo/tcpkiller