使われてるポートを調べる
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 96307Bash などの場合は、これは一行で行えます。
kill -9 $(lsof -t -i:8080)-tにより プロセスID だけを取得できるので上のコマンドは以下と同じになります。
kill -9 96307