2012-05-29 129 views
7

在linux中,我使用lsof检查文件是由哪个进程打开的。我有一个Android设备,但没有lsof命令。是否有可能找到哪个进程打开特定的文件?如何在没有lsof的情况下检查打开的文件

我将用它来验证MediaPlayer是否保留fd,但应该关闭它。

+2

“lsof的”加到[ICS](http://androidxref.com/source/history/ system/core/toolbox/Android.mk),提交'8b9b105bc7bf6428591d55462b3e727ba7504b29'。如果它不存在于你所定位的版本中,那么将它从源头中提取出来,将所需的位撕掉并使用NDK构建它。 – Jens

回答

1

安装busybox,它有一个lsof命令。

+0

我使用繁忙的箱子,但仍然得到“????”我怎么能得到的价值是任何一个不同的命令? –

+0

您需要root访问权限。 –

+0

即时通讯已经在root访问,命令运行并发出一个表和im期待值,但所有即时通讯都是问号“????”任何想法thanx –

11

穷人的lsof的是执行

ls -l /proc/[process id]/fd 

不过,你需要root权限。

+5

'ls -l/proc/*/fd'可以查看默认情况下所有打开的文件,例如lsof。 –

0

感谢迈克琼斯和乔恩与穷人的生命中的小费。我用它在下面上的busybox(Synology网络)来列出每个进程下分组的FD目录:

for p in [0-9]*; do ls -l /proc/$p/fd ;done 
相关问题