メインコンテンツへスキップ

lsofコマンドとは

·
Linux コマンド
目次

lsofコマンドとは
#

lsof(list open files)は、システムで開いている全てのファイルやプロセス、ネットワークソケット等を一覧表示するためのコマンド。

主なオプション
#

オプション説明
-iネットワーク接続を表示lsof -i
-i :ポート番号特定ポートを使用しているプロセスlsof -i :80
-i tcp / -i udpTCP/UDP接続のみ表示lsof -i tcp
-p PID特定プロセスが開いているファイルlsof -p 1234
-u ユーザー名特定ユーザーのプロセスlsof -u root
-c コマンド名特定コマンドのプロセスlsof -c nginx
+D ディレクトリディレクトリ配下のファイル(再帰的)lsof +D /var/log
-tPIDのみ出力(スクリプト向け)lsof -t -i :8080
-Pポート番号を数字で表示(サービス名ではなく)lsof -i -P
-nホスト名解決を行わない(高速化)lsof -i -n

よく使う組み合わせ
#

# ポート8080を使用しているプロセスを確認
lsof -i :8080

# LISTENしているポート一覧
lsof -i -P -n | grep LISTEN

# 特定ファイルを開いているプロセス
lsof /var/log/syslog

# 削除されたが開かれたままのファイル
lsof +L1

# 特定プロセスのネットワーク接続
lsof -i -a -p 1234

出力の見方
#

COMMAND  PID  USER   FD   TYPE  DEVICE  SIZE/OFF  NODE  NAME
nginx    1234 root   6u   IPv4  12345      0t0    TCP   *:80 (LISTEN)
  • FD: ファイルディスクリプタ(u=読み書き、r=読み取り、w=書き込み)
  • TYPE: ファイルタイプ(IPv4, IPv6, REG, DIRなど)
  • NODE: inode番号またはプロトコル

振り返りポイント
#

  • lsofコマンドとは
  • lsof -i :8080はどんなコマンド?
  • lsof -i -P -n | grep LISTENはどんなコマンド?

参考
#