22

lsof -p 12345 выведет список всех файлов, открытых процессом, чей pid равен 12345, но только на определенный момент времени.

Как мы можем непрерывно контролировать процесс от начала до конца (до тех пор, пока процесс не будет завершен), чтобы перечислять / показывать каждый отдельный файл, к которому процесс обращался в течение всей его жизни?

3 ответа3

29

Попробуйте с помощью strace -p 12345 ; он должен делать то, что вы пытаетесь достичь.

Вывод может быть отфильтрован для отображения только открытых файлов (комментарий Дэна Д.):

strace -e open -p 12345

Примечание: вы также можете отслеживать быстро запущенные процессы с помощью strace -e open <command> .

6

Новая утилита fatrace сделает это: https://launchpad.net/fatrace/

sudo fatrace | grep '(6514)'

Не используйте параметр -p, это означает противоположность значения в lsof или других утилитах.

3

Это будет циклически повторять вашу команду и очищать экран каждый раз:

watch "lsof -p 12345"

ВНИМАНИЕ: это пропустит быстрый доступ к файлам и подходит только для просмотра давних файлов

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .