如何获取某个进程打开的文件名?

如何获取某个进程打开的文件名?

我想列出 init 进程打开的所有文件名。我知道/proc/PID/fd目录。但这只提供文件描述符。如何从文件描述符列表中获取文件名?

答案1

使用lsof列出某个进程的打开文件,在你的情况下是“init”:

$ sudo lsof -ln -p `pgrep init`
命令 PID 用户 FD 类型 设备大小/关闭节点名称
初始化 1 0 顺时针方向 8,1 4096 2 /
初始化 1 0 rtd DIR 8,1 4096 2 /
初始化 1 0 txt REG 8,1 36992 354775 /sbin/init
初始化 1 0 内存寄存器 8,1 14768 354922 /lib/x86_64-linux-gnu/libdl-2.13.so
初始化 1 0 内存寄存器 8,1 1599504 350331 /lib/x86_64-linux-gnu/libc-2.13.so
初始化 1 0 内存寄存器 8,1 126232 354818 /lib/x86_64-linux-gnu/libselinux.so.1
初始化 1 0 内存寄存器 8,1 261184 354836 /lib/x86_64-linux-gnu/libsepol.so.1
初始化 1 0 内存寄存器 8,1 136936 354986 /lib/x86_64-linux-gnu/ld-2.13.so
初始化 1 0 10u FIFO 0,14 0t0 3054 /运行/initctl

相关内容