lsof -p 12345
выведет список всех файлов, открытых процессом, чей pid - 12345, но только на определенный момент времени.
Как мы можем непрерывно контролировать процесс от начала до конца (до тех пор, пока процесс не будет завершен), чтобы перечислять / показывать каждый отдельный файл, к которому процесс обращался в течение всей его жизни?
Ответы:
Попробуй с
strace -p 12345
; он должен делать то, что вы пытаетесь достичь.Вывод может быть отфильтрован для отображения только открытых файлов ( комментарий Дэна Д. ):
Примечание: вы также можете отслеживать быстро запущенные процессы с помощью
strace -e open <command>
.источник
strace -p {pid} | grep -i "Open" | tee files_opened.log
. Ключgrep
, который позволяет вам фильтровать вывод для системного вызова, который вы хотите (напримерopen()
).strace
может сделать это лучше, чемgrep
с-e
опцией:strace -e open
Новая утилита fatrace сделает это: https://launchpad.net/fatrace/
Не используйте опцию -p, это означает противоположность значения в lsof или других утилитах.
источник
Это зациклит повторный запуск вашей команды и очистку экрана каждый раз:
ВНИМАНИЕ: это пропустит быстрый доступ к файлам и подходит только для просмотра давних файлов
источник
strace
.lsof