lsofコマンドについて
概要
- lsof - list open files
インストール
$ sudo apt install lsof
引数
-u <user>
- ユーザが使用しているリソースを表示
-i <proto:port>
UDP
,TCP
などを指定port
はわかる時に指定
-p <pid>
- 指定したpidを表示
-c <command>
- commandのプロセスについて表示する
具体例
引数無しで実行
- 参照できる権限の範囲内ですべての使用されているリソースを表示
# lsof
COMMAND PID TID TASKCMD USER FD TYPE DEVICE SIZE/OFF NODE NAME
systemd 1 root cwd DIR 254,1 4096 2 /
systemd 1 root rtd DIR 254,1 4096 2 /
systemd 1 root txt REG 254,1 1739200 16656 /usr/lib/systemd/systemd
systemd 1 root mem REG 254,1 149576 2486 /usr/lib/x86_64-linux-gnu/libgpg-error.so.0.29.0
...
マウントしたディスクがbusyでアンマウントできない
- lsofで使用してるプロセスを特定し手動で開放すると簡単である
# lsof ./sdb
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
zsh 76515 user cwd DIR 8,16 4096 2 ./sdb
mv 202489 user cwd DIR 8,16 4096 2 ./sdb
...