如何在没有lsof的情况下检查打开的文件

qrt*_*tt1 7 android lsof

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

我将使用它来验证MediaPlayer是否持有fd,但应该关闭它.

joh*_*n18 18

穷人的lsof是执行

ls -l  /proc/[process id]/fd
Run Code Online (Sandbox Code Playgroud)

不过,你需要成为root用户.

  • `ls -l/proc/*/fd`默认情况下查看lsof等所有打开的文件. (12认同)

小智 6

感谢 Mike Jones 和 Joqn 提供穷人 lsof 的提示。我在下面的 busybox (synology nas) 上使用它来列出每个进程下分组的 fd 目录:

  for p in [0-9]*; do ls -l /proc/$p/fd ;done 
Run Code Online (Sandbox Code Playgroud)

  • 谢谢。看起来这需要在 /proc 文件夹中运行 - 也许它应该更一般地是 `for p in /proc/[0-9]*; 做 ls -l $p/fd; 完成`? (2认同)