コマンドリファレンス - オープン中ファイルリスト lsof

クラウディア 
1. 概要
2. インストール
3. 使い方
4. オプション

1. 概要

 「lsof」は「list open files」の略なのですね。  実は、最近(2019年8月29日)まで、このコマンドを知らなかったのだ。  使う必要にも迫られなかったのでね(使う必要があったのが嘆かわしいことなのであるが、それは機会があれば別途・・・)。

2. インストール

 知らなかったひとつの理由は、少なくとも「FreeBSD 11.3 RELEASE」には、デフォルトでは存在していないのです。

cd /usr/ports/sysutils/lsof
make
make install
 インストール時のオプションはありません。

3. 使い方

 コマンドだけ打てば

> lsof
COMMAND    PID     USER   FD     TYPE             DEVICE           SIZE/OFF     NODE NAME
kernel       0     root  cwd     VDIR               0,82               1024        2 /
kernel       0     root  rtd     VDIR               0,82               1024        2 /
init         1     root  cwd     VDIR               0,82               1024        2 /
init         1     root  rtd     VDIR               0,82               1024        2 /
init         1     root  txt     VREG               0,82            1099064   963135 /sbin/init
dhclient   304     root  cwd     VDIR               0,82               1024        2 /

	・・・以下略・・・

 現在、システムでオープン中のすべてのファイルがリストされるようです。  表示される内容を、わたしの理解している範囲で説明すると(左から順に)
項 目 意 味 備 考
COMMAND オープンしているコマンド プロセスだったりします
PID プロセスID
USER 実行ユーザ
FD ファイルディスクリプタ
TYPE ???
DEVICE ???
SIZE/OFF サイズ
MODE ???
NAME ファイル名

4. オプション

 わたしがよく使うオプションは、以下のものです。
オプション 意 味
-c コマンド(プログラム)を指定

 なるほどというか、ちょっと笑うのが、「-c」で「lsof」を指定してみたら・・・


> lsof -c lsof
COMMAND  PID     USER   FD   TYPE DEVICE           SIZE/OFF     NODE NAME
lsof    2822 hogehoge  cwd   VDIR   0,82                512  2588550 /home/hogehoge
lsof    2822 hogehoge  rtd   VDIR   0,82               1024        2 /
lsof    2822 hogehoge  txt   VREG   0,82             140600  1691780 /usr/local/sbin/lsof
lsof    2822 hogehoge  txt   VREG   0,82             145304    80257 /libexec/ld-elf.so.1
lsof    2822 hogehoge  txt   VREG   0,82              60816 12840981 /lib/libkvm.so.7
lsof    2822 hogehoge  txt   VREG   0,82            1775880 12841017 /lib/libc.so.7
lsof    2822 hogehoge  txt   VREG   0,82             102040 12840984 /lib/libelf.so.2
lsof    2822 hogehoge    0u  VCHR   0,85           0t213166       85 /dev/pts/0
lsof    2822 hogehoge    1u  VCHR   0,85           0t213166       85 /dev/pts/0
lsof    2822 hogehoge    2u  VCHR   0,85           0t213166       85 /dev/pts/0
lsof    2822 hogehoge    3r  VCHR   0,20                0t0       20 /dev/mem
lsof    2822 hogehoge    4r  VCHR   0,21 0xfffff80006412b40       21 /dev/kmem