在使用Linux过程中,有时我们须要晓得某个文件正在被什么进程在使用。得悉文件被什么进程正在使用linux常用命令,就可以通过kill命令强制“杀死”进程,之后就可以对文件进行编辑、删除等操作了,Linux提供了lsof命令来查看指定文件正在被什么进程使用。
lsof命令用于查看进程开打的文件linux查看缓存占用文件,打开文件的进程,进程打开的端口(TCP、UDP),寻回/恢复删掉的文件嵌入式linux驱动程序设计从入门到精通,是非常便捷的系统监视工具。由于lsof命令须要访问核心显存和各类文件linux查看缓存占用文件,所以须要root用户执行。
lsof句型
lsof [参数] [文件]
参数说明:
示例
(1)查看系统中所有打开文件的进程信息,比如:
[hxstrive@localhost ~]$ lsof COMMAND PID TID USER FD TYPE DEVICE SIZE/OFF NODE NAME systemd 1 root cwd unknown /proc/1/cwd (readlink: Permission denied) systemd 1 root rtd unknown /proc/1/root (readlink: Permission denied) systemd 1 root txt unknown /proc/1/exe (readlink: Permission denied) systemd 1 root NOFD /proc/1/fd (opendir: Permission denied) kthreadd 2 root cwd unknown /proc/2/cwd (readlink: Permission denied ...
(2)查看指定文件正在被那个进程打开,比如:
[hxstrive@localhost ~]$ lsof test.ods COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME soffice.b 13507 hxstrive 3uW REG 253,0 7260 3653596 test.ods
注意:在执行“lsoftest.ods”命令之前,先使用LibreOffice工具创建一个Excel表格文件,且命名为“test”(创建完成后不要关掉LibreOffice)。
(3)列举进程号为13597的进程打开的所有文件,比如:
[hxstrive@localhost ~]$ lsof -p 13507 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME soffice.b 13507 hxstrive cwd DIR 253,0 4096 3653566 /home/hxstrive soffice.b 13507 hxstrive rtd DIR 253,0 224 64 / soffice.b 13507 hxstrive txt REG 253,0 7168 52222165 /usr/lib64/libreoffice/program/soffice.bin soffice.b 13507 hxstrive mem REG 253,0 8337872 52123259 /usr/lib64/libreoffice/program/libcuilo.so soffice.b 13507 hxstrive DEL REG 0,4 98309 /SYSV00000000 soffice.b 13507 hxstrive mem REG 253,0 341752 52144539 /usr/lib64/libreoffice/program/libsvgiolo.so ...