Linux環境で特定のポートを使いたいけど先に使われていてどのプログラムがそのポートを使っているか知りたいとき、lsofコマンドが便利。
lsofコマンド
「lsof」はオープンしているファイルを一覧表示するコマンドです。
lsofコマンドに-iオプションでポート番号をつけて実行すると、そのポートを握っているプログラム (コマンド) がわかる。
80番ポートを使っているのは誰?
$ sudo lsof -i:80 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME nginx 17287 root 12u IPv4 47601898 0t0 TCP *:http (LISTEN) nginx 17287 root 14u IPv6 47601900 0t0 TCP *:http (LISTEN) nginx 17292 www-data 12u IPv4 47601898 0t0 TCP *:http (LISTEN) nginx 17292 www-data 14u IPv6 47601900 0t0 TCP *:http (LISTEN) nginx 17293 www-data 12u IPv4 47601898 0t0 TCP *:http (LISTEN) nginx 17293 www-data 14u IPv6 47601900 0t0 TCP *:http (LISTEN)
この例ではnginxがTCP 80番 (http) を握っていることが読み取れる。