Back to questions
Альфа-Банк
Junior — Middle
71
Каким образом можно определить файлы, которые в данный момент читаются процессом в операционной системе Linux?
Companies where asked
Answer from AI
sobes.tech AI
В Linux можно определить файлы, которые в данный момент читаются процессом, с помощью каталога /proc. Для каждого процесса есть папка /proc/<pid>/fd/, где <pid> — идентификатор процесса. В этой папке находятся символьные ссылки на открытые файлы процесса.
Чтобы увидеть, какие файлы открыты процессом, можно выполнить:
ls -l /proc/<pid>/fd/
Для фильтрации файлов, которые именно читаются, можно использовать lsof (list open files) с фильтрацией по процессу:
lsof -p <pid>
В выводе lsof в колонке FD (file descriptor) есть суффиксы:
r— файл открыт на чтениеw— файл открыт на записьu— файл открыт на чтение и запись
Таким образом, файлы с r или u в этой колонке читаются процессом.
Пример:
lsof -p 1234 | grep 'r'
Это покажет файлы, которые процесс с PID 1234 читает.