Chciałbym móc śledzić plik i zobaczyć, który proces dotyka tego pliku. Czy to jest możliwe? Wiem, że widzę listę otwartych procesów w monitorze aktywności, ale myślę, że dzieje się to zbyt szybko, żebym to zobaczył. Powodem tego jest to, że używam frameworka i myślę, że wersja systemowa frameworka jest używana zamiast wersji debugowania i chciałbym zobaczyć, który proces go dotyka.
93
Odpowiedzi:
lsof
wyświetli listę otwartych plików, ale może to być trochę niezręczne w przypadku chwilowych dotknięć (np. jeśli plik nie jest otwarty podczas działania lsof, nie jest wyświetlany).Myślę, że najlepszym rozwiązaniem będzie fseventer.app firmy fernLightning . Jest to „nagware” i pozwala na oglądanie (graficznie) API fsevents w czasie rzeczywistym.
źródło
lsof | grep myfilename
pracował dla mnie. Mam w Koszu plik PDF, który według systemu jest używany. Dziwnielsof
twierdzi, że jest używany,Preview
alePreview
wydaje się, że nie działa (np. Kiedy przechodzę do uruchomionych aplikacji), aleActivity Monitor
pokazuje, że działa. Głupi podgląd.To proste:
sudo fs_usage | grep [path_to_file]
źródło
sudo fs_usage | grep musiclibrary
nie pokazał niczego, alesudo lsof | grep musiclibrary
pokazał 3 procesy uzyskujące dostęp do plików mojej bazy danych biblioteki muzycznej.Ale spędziłem 2 minuty na Google i znalazłem tutaj odpowiedź .
źródło
Szybszy sposób to:
To rozwiązanie nie wymaga hasła roota i zwraca następujący, przejrzysty wynik:
źródło
Inną opcją jest lenistwo . Jest to darmowy graficzny interfejs użytkownika typu open source dla LSOF, o którym wspominali inni.
źródło