Відповіді:
Так, хоча файл все ще існує до тих пір, поки процес зберігає його відкритим, оскільки він був unlink
-ed, він більше не доступний.
Якщо вам потрібно продовжувати бачити повідомлення під час їх створення, ви можете ввімкнути ktrace
процес, який генерує їх:
% ktrace -p PID
% kdump -l
Вище буде перераховано всі системні виклики, здійснені процесом, однак вони не просто записуються в, stdout
і stderr
тому це може бути трохи непосильним і / або вимагати додаткової фільтрації, щоб отримати лише те, що ви хочете бачити.
Якщо ви хочете скопіювати файл, ви можете скористатися однією з утиліт загального призначення, наприклад, tsk_recover
з порту sysutils / sleuthkit . Звичайна мудрість не писати у файлову систему, що містить випадково видалені файли, які ви хочете відновити, не застосовується, оскільки у вас все ще залишається процес збереження відкритого файлу.
Однак відновлення створить копію видаленого файлу - нічого, написаного до нього тим самим процесом пізніше, у копії не буде.
Вибачте, я не можу придумати нічого іншого ... На Solaris я одного разу зміг відновити видалений файл, який все ще був відкритий процесом, зайшовши /proc/PID/fd/...
, але profs на FreeBSD не пропонує такої функціональності ...
Згідно з цією відповіддю , /proc/PID/fd
метод також працював би на Linux, однак лінійні програми FreeBSD також не пропонують цю функцію. Сором, справді ...