2012-05-29 14 views
7

W Linuksie używam lsof do sprawdzenia, czy plik jest otwarty przez który proces. Mam urządzenie z Androidem, ale nie mam polecenia lsof. Czy można znaleźć proces otwierania konkretnego pliku?jak sprawdzić otwarty plik bez lsof

Użyję go do sprawdzenia, czy MediaPlayer zawiera fd, ale powinien zostać zamknięty.

+2

„lsof” dodaje się [ICS] (http://androidxref.com/source/history/ system/core/toolbox/Android.mk), zatwierdź '8b9b105bc7bf6428591d55462b3e727ba7504b29'. Podnieś go ze źródła, wyrwij wymagane bity i zbuduj je za pomocą NDK, jeśli nie istnieje w wersjach, na które kierujesz reklamy. – Jens

Odpowiedz

1

Zainstaluj zajęty, ma polecenie lsof. lsof

+0

Użyłem zajętego pudełka, ale wciąż mam "????" jak mogę uzyskać wartości, czy jest to inne polecenie przez przypadek? –

+0

Potrzebujesz dostępu root. –

+0

im już na prawach administratora, polecenie uruchamia się i wydaje tabelę i im oczekuje wartości, ale wszystko co otrzymuję to znaki zapytania "????" wszelkie pomysły nizne –

11

biedak jest wykonanie

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

Mimo to, trzeba być korzeń.

+5

'ls -l/proc/*/fd', aby zobaczyć wszystkie otwarte pliki, takie jak lsof, domyślnie. –

0

Dzięki mike jones i Joqnowi za napiwek z lofem biedaka. Że stosuje się ją w niniejszym na Busybox (NAS synology) do listy katalogów fd zgrupowane w każdym procesie:

for p in [0-9]*; do ls -l /proc/$p/fd ;done 
Powiązane problemy