lsof

lsofはプロセスが開いているファイルの一覧を表示するLinux/Unixコマンドです。

lsof [options] [path]

lsof コマンドには以下に示すオプションを指定できる。

-h
ヘルプを表示する。
-n
ホスト名を表示しない。
-l
ユーザ名の代わりにユーザIDを表示する。
$ lsof -l
COMMAND PID TID TASKCMD     USER   FD   TYPE DEVICE    SIZE              NODE NAME
init      1                    0  cwd    DIR    0,2    4096  2533274790450951 /
init      1                    0  rtd    DIR    0,2    4096  2533274790450951 /
init      1                    0  txt    REG    0,2  644432  3377699720582928 /init
-p pid
特定のプロセスが開いているファイルの一覧を表示する。pid にはプロセスIDを指定する。
$ lsof -p 1

プロセスIDの前に「^」を付けることで、指定したプロセス以外を表示することができる。

$ lsof -p ^1
-R
親プロセスのプロセスID (PPID) を表示する。
$ lsof -R
COMMAND PID TID TASKCMD PPID  USER   FD   TYPE DEVICE    SIZE              NODE NAME
init      1                0  root  cwd    DIR    0,2    4096  2533274790450951 /
init      1                0  root  rtd    DIR    0,2    4096  2533274790450951 /
init      1                0  root  txt    REG    0,2  644432  3377699720582928 /init
-r
15秒毎に表示内容を更新する。
-u user
特定のユーザが実行したプロセスが開いているファイルの一覧を表示する。user にはユーザ名又はユーザIDを指定する。
$ lsof -u root

ユーザ名又はユーザIDの前に「^」を付けることで、指定したユーザ以外を表示することができる。

$ lsof -u ^root
-?
ヘルプを表示する。
$ lsof
COMMAND PID TID TASKCMD  USER   FD   TYPE DEVICE    SIZE             NODE NAME
init      1              root  cwd    DIR    0,2    4096 2533274790450951 /
init      1              root  rtd    DIR    0,2    4096 2533274790450951 /
init      1              root  txt    REG    0,2  632096 3377699720582928 /init

lsof コマンドで表示される情報を以下に示す。

COMMAND
コマンド名
PID
プロセスID
PPID
親プロセスのプロセスID(-R オプションを指定した場合のみ表示される)
USER
ユーザ名(-l オプションを指定した場合はユーザID)
FD
ファイルディスクリプタ
TYPE
種類
DEVICE
デバイス
SIZE
ファイルサイズ
NODE
iノード番号
NAME
ファイル名

参考文献

lsof-org 2023. GitHub - lsof-org/lsof: LiSt Open Files