Senior
Kur rašo procesas, jei failas ištrintas, bet deskriptorius atviras? Ar galima pamatyti turinį?
sobes.tech AI
Atsakymas iš AI
Если файл удалён из файловой системы, но процесс всё ещё держит открытый дескриптор на этот файл, то процесс продолжит писать данные в inode этого файла. Файл физически не отображается в каталоге, но данные сохраняются на диске, пока дескриптор открыт.
Это связано с тем, что в Unix-подобных системах удаление файла (unlink) удаляет ссылку на файл из каталога, но сам файл удаляется только тогда, когда количество ссылок и открытых дескрипторов становится нулём.
Чтобы посмотреть содержимое такого "удалённого" файла, можно:
- Найти дескриптор процесса, который держит файл открытым, например, через
/proc/<pid>/fd/. - Перейти в каталог
/proc/<pid>/fd/и посмотреть символическую ссылку на дескриптор, например/proc/<pid>/fd/3. - Считать содержимое через этот дескриптор, например,
cat /proc/<pid>/fd/3.
Таким образом, даже если файл удалён из каталога, его содержимое доступно через открытый дескриптор до закрытия файла процессом.