ksaitoの日記

日々試したことの覚え書き

lsofコマンドは便利

移転しました。

自動的にリダイレクトします。

linuxのlsofコマンドは、とても便利です。
ファイル名を指定すると、そのファイルを使っているコマンドが分かります。
プロセスID、プログラム名から、そのプロセスが使っているファイルを見たり、ポートをリスニングしているプログラムを見つけたりできます。

$ lsof .
COMMAND   PID   USER   FD   TYPE DEVICE SIZE    NODE NAME
bash    17151 ksaito  cwd    DIR    8,2   38 8429822 .
lsof    17358 ksaito  cwd    DIR    8,2   38 8429822 .
lsof    17359 ksaito  cwd    DIR    8,2   38 8429822 .
ksaito@debian10:/tmp$ lsof -p 17151
COMMAND   PID   USER   FD   TYPE DEVICE    SIZE     NODE NAME
bash    17151 ksaito  cwd    DIR    8,2      38  8429822 /tmp
bash    17151 ksaito  rtd    DIR    8,2    4096      128 /
bash    17151 ksaito  txt    REG    8,2  673748      132 /bin/bash
bash    17151 ksaito  mem    REG    0,0                0 [heap] (stat: No such file or directory)
bash    17151 ksaito  mem    REG    8,2   87976 10688456 /lib/ld-2.3.6.so
bash    17151 ksaito  mem    REG    8,2  271668 10708416 /lib/libncurses.so.5.5
bash    17151 ksaito  mem    REG    8,2    9592 10688462 /lib/libdl-2.3.6.so
bash    17151 ksaito  mem    REG    8,2 1091040 10688459 /lib/libc-2.3.6.so
bash    17151 ksaito  mem    REG    8,2 1960224  4195633 /usr/lib/locale/locale-archive
bash    17151 ksaito  mem    REG    8,2   26268 10688466 /lib/libnss_compat-2.3.6.so
bash    17151 ksaito  mem    REG    8,2   68460 10688465 /lib/libnsl-2.3.6.so
bash    17151 ksaito  mem    REG    8,2   34320 10688470 /lib/libnss_nis-2.3.6.so
bash    17151 ksaito  mem    REG    8,2   38364 10688468 /lib/libnss_files-2.3.6.so
bash    17151 ksaito  mem    REG    8,2   21584 12679763 /usr/lib/gconv/gconv-modules.cache
bash    17151 ksaito    0u   CHR  136,0                2 /dev/pts/0
bash    17151 ksaito    1u   CHR  136,0                2 /dev/pts/0
bash    17151 ksaito    2u   CHR  136,0                2 /dev/pts/0
bash    17151 ksaito  255u   CHR  136,0                2 /dev/pts/0

Debian系であれば、インストールは簡単です。

$ sudo aptitude install lsof
Password:
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています... 完了
拡張状態情報を読み込んでいます
パッケージの状態を初期化しています... 完了
拡張状態情報を書き込んでいます... 完了
タスクの記述を読み込んでいます... 完了
タグのデータベースを構築しています... 完了
以下のパッケージが一時固定されています:
  e2fslibs e2fsprogs libblkid1 libcomerr2 libss2 libuuid1
以下の新規パッケージがインストールされます:
  lsof
更新: 0 個、新規インストール: 1 個、削除: 0 個、保留: 6 個。
212kB のアーカイブを取得する必要があります。展開後に 377kB のディスク領域が新たに消費されます。
拡張状態情報を書き込んでいます... 完了
取得:1 http://ftp.us.debian.org etch/main lsof 4.77.dfsg.1-3 [212kB]
212kB を 2s 秒でダウンロードしました (82.6kB/s)
未選択パッケージ lsof を選択しています。
(データベースを読み込んでいます ... 現在 33721 個のファイルとディレクトリがインストールされています。)
(.../lsof_4.77.dfsg.1-3_arm.deb から) lsof を展開しています...
lsof (4.77.dfsg.1-3) を設定しています ...
$