memo lsof file descriptor
lsofで存在しない(既に消された)ファイルに対してプロセスが動いているかどうか確認できる
こんなことができるのは、Linuxではファイルが使用中でもファイルを消せるから。使用中のファイルを消したら、プロセスだけが残る。
それを確認するためには、lsof
で(deleted)
になっているプロセスでかつ、大きなファイルサイズのファイルにアクセスしようとしていたプロセスをサーチする。
# lsof | grep deleted | sort -k 7 -nr | head
とか。
これはlsofでsize/offをhuman-readableにしている。
lsof | grep /var* | numfmt --field=8 --to=iec | head
なお、df
とかdu
とかで分かるのは論理ボリュームの使用量であるため、物理ディスクの使用量を知りたい場合は別の方法が必要になる。(lsblk
やfdisk -l
では分からなかった)
file descriptor
は、プログラムがアクセスするファイルなどの識別子