lsof -p 12345
wyświetli listę wszystkich plików otwartych przez proces, którego pid wynosi 12345, ale tylko przez określony czas.
Jak możemy w sposób ciągły monitorować proces od początku do końca (aż do jego zakończenia), aby wyświetlić listę / pokazać każdy pojedynczy plik, do którego ma dostęp proces przez cały okres jego użytkowania?
Odpowiedzi:
Spróbuj z
strace -p 12345
; powinien zrobić to, co próbujesz osiągnąć.Dane wyjściowe można filtrować, aby wyświetlać tylko otwarte pliki ( komentarz Dana D. ):
Uwaga: możesz także śledzić szybko działające procesy
strace -e open <command>
.źródło
strace -p {pid} | grep -i "Open" | tee files_opened.log
. Kluczem jestgrep
, który pozwala filtrować dane wyjściowe dla żądanego wywołania systemowego (npopen()
.).strace
może to zrobić lepiej niżgrep
z-e
opcją:strace -e open
Nowe narzędzie fatrace to zrobi: https://launchpad.net/fatrace/
Nie używaj opcji -p, oznacza to przeciwieństwo tego, co oznacza w lsof lub innych narzędziach.
źródło
Spowoduje to zapętlenie ponownego uruchamiania polecenia i czyszczenia ekranu za każdym razem:
OSTRZEŻENIE: spowoduje to pominięcie szybkiego dostępu do plików i nadaje się tylko do wyświetlania plików długo stojących
źródło
strace
.lsof