迷ったらとりあえずコレ
次のように実行すると、TCP でポートを開いて LISTEN 状態になっているプロセスのコマンド名や PID の一覧を表示できます。
サーバー系の開発をしていると、開いているポートがどんどん増えていくので、次のような ports
エイリアスを定義しておくと便利です。
lsof -i の使い方
lsof (list open files) コマンドは、Linux や macOS で、現在開いているファイルやソケットの一覧を表示するコマンドです。
TCP/UDP ソケット(つまりネットワーク)に関する情報を表示するには、-i
オプションを指定します。
$ lsof -i
$ lsof -i tcp -s tcp:listen # TCP で LISTEN 状態になっているものに絞る
$ lsof -i tcp:3000 -s tcp:listen # 指定したポート番号を開いているプロセスを調べる
デフォルトでは、ポート番号がサービス名(IANA 管理)に変換して表示されるので、この挙動を抑制して、数値のポート番号で表示したいときは、-P
オプションを指定します。
$ lsof -i tcp:8000
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
Python 71362 maku 5u IPv6 0x2825a06374c5592c 0t0 TCP *:irdmi (LISTEN)
$ lsof -i tcp:8000 -P
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
Python 71362 maku 5u IPv6 0x2825a06374c5592c 0t0 TCP *:8000 (LISTEN)
上記のように実行して PID を調べれば、kill
コマンドで対象プロセスを終了することができます。
関連記事