如何查看某进程所打开的所有文件

2025-04-06 20:09:22
推荐回答(1个)
回答1:

取出该进程的进程号,然后用lsof -p pid查看打开的所有文件。(这里以crond进程为例)
[root@haojiu a]# ps -ef |grep crond|grep -v grep |awk '{print $2}' #取出进程号
2550
[root@zintao01 a]# lsof -p 2550 #查看该进程打开的所有文件
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
crond 2550 root cwd DIR 8,2
crond 2550 root rtd DIR 8,2
crond 2550 root txt REG 8,2 /usr/sbin/crond
crond 2550 root mem REG 8,2 /lib64/libnss_files-2.12.so
crond 2550 root mem REG 8,2 /usr/lib/locale/locale-archive
crond 2550 root mem REG 8,2 /lib64/libfreebl3.so
crond 2550 root mem REG 8,2 /lib64/libcrypt-2.12.so
crond 2550 root mem REG 8,2 /lib64/libc-2.12.so
crond 2550 root mem REG 8,2 /lib64/libaudit.so.1.0.0
crond 2550 root mem REG 8,2 /lib64/libdl-2.12.so
crond 2550 root mem REG 8,2 /lib64/libpam.so.0.82.2
crond 2550 root mem REG 8,2 /lib64/libselinux.so.1
crond 2550 root mem REG 8,2 /lib64/ld-2.12.so
crond 2550 root 0u CHR 1,3 /dev/null
crond 2550 root 1u CHR 1,3 /dev/null
crond 2550 root 2u CHR 1,3 /dev/null
crond 2550 root 3u REG 8,2 /var/run/crond.pid
crond 2550 root 4u unix 0 socket
crond 2550 root 5r DIR 0,10 0 1 inotify
如果有什么不懂的话可以去看看《Linux就该这么学》这本书,非常适合新手学习Linux。