Junior — Middle
98
¿Cómo se pueden identificar los archivos que en este momento están siendo leídos por un proceso en el sistema operativo Linux?
Empresas donde se preguntó
Respuesta de la IA
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 читает.