使われてるポートを調べる
localhost
で8000
から8100
までのポートを調べるには以下のように実行します。
# nc -zv -
nc -zv localhost 8000-8100
<start>-<end>
には範囲を指定し3000
から4000
までの範囲を調べたいなら、3000-4000
のようにします。
実行すると、範囲内のポートがどうだったかログが出力され、そのポートが閉じてる場合は、
nc: connectx to localhost port 8080 (tcp) failed: Connection refused
のように出力され開いてた場合は、
found 0 associations
found 1 connections:
1: flags=82
outif lo0
src ::1 port 53010
dst ::1 port 8080
rank info not available
TCP aux info available
Connection to localhost port 8080 [tcp/http-alt] succeeded!
のように出力されます。
またすべてがfailed
の場合、このコマンドの終了ステータスは1
になり、1つでもsucceeded
の場合は0
になります。
ポートのプロセスを終了する
上記では8080
番がsucceeded
となりました。そのポートの内容を終了させたい場合、まずポートを使ってるプロセスの PID を以下のように調べます。
# lsof -i:
lsof -i:8080
# COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
# com.docke 96307 nju33 43u IPv6 0x5e43f653a65638b 0t0 TCP *:http-alt (LISTEN)
この結果のPID
の列の番号が終了させるのに必要な番号です。後はその番号をkill
コマンド実行時に渡します。
kill -9 96307
Bash などの場合は、これは一行で行えます。
kill -9 $(lsof -t -i:8080)
-t
により プロセスID だけを取得できるので上のコマンドは以下と同じになります。
kill -9 96307