Вопрос по android – как проверить открытый файл без lsof

7

В Linux я использую lsof, чтобы проверить, какой файл открывается. У меня есть устройство Android, но нет команды lsof. Можно ли найти какой процесс открыть конкретный файл?

Я буду использовать его для проверки того, что MediaPlayer удерживает fd, но он должен быть закрыт.

& APOS; Lsof & APOS; добавлен вICS, совершить8b9b105bc7bf6428591d55462b3e727ba7504b29, Поднимите его из источника, выньте необходимые биты и постройте его, используя NDK, если он не существует в версиях, на которые вы ориентируетесь. Jens

Ваш Ответ

3   ответа
1

Установите busybox, он имеет команду lsof.

Я использовал занятую коробку, но все еще получаю "????" Как я могу получить значения это другая команда случайно?
Вам нужен root-доступ.
я уже на root-доступе, команда запускается и выдает таблицу и я ожидаю значения, но все, что я получаю, это вопросительные знаки & quot; ???? & quot; любые идеи, спасибо
Для большинства архитектур здесь есть статически связанные двоичные файлы busybox:busybox.net/downloads/binaries/latest
Я установил Busybox на свой телефон, но он не предоставляет мне команду lsof :-( Возможно, это зависит от телефона, но я не могу найти его в списке апплетов.
15

Бедный человек должен казнить

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

Тем не менее, вы должны быть root.

это спасло мне жизнь!
ls -l /proc/*/fd чтобы увидеть все открытые файлы, как это делает lsof по умолчанию.
3

Спасибо Майк Джонс и Джокн за чаевые с lsof бедняков. Я использовал его в busybox (synas nas) для вывода списка каталогов fd, сгруппированных под каждым процессом:

  for p in [0-9]*; do ls -l /proc/$p/fd ;done 
Благодарю. Похоже, что это должно быть запущено в папке / proc - может быть, это должно быть в более общемfor p in /proc/[0-9]*; do ls -l $p/fd; done?

Похожие вопросы