Ja, obwohl die Datei noch vorhanden ist, solange ein Prozess sie geöffnet hält, weil sie unlink
-ed war, ist sie nicht mehr zugänglich.
Wenn Sie die Nachrichten weiterhin anzeigen möchten, während sie generiert werden, können Sie sie ktrace
für den Prozess aktivieren, der sie generiert:
% ktrace -p PID % kdump -l
Das Obige listet alle Systemaufrufe auf, die durch den Prozess getätigt wurden, schreibt jedoch nicht nur an stdout
und stderr
kann daher etwas überwältigend sein und / oder zusätzliche Filterung erfordern, um nur das zu erhalten, was Sie sehen möchten.
Wenn Sie eine Kopie der Datei wünschen, können Sie eines der Universal-Dienstprogramme verwenden, z. B. tsk_recover
über den Port sysutils / sleuthkit . Die übliche Weisheit, nicht in das Dateisystem zu schreiben, das die versehentlich gelöschten Dateien enthält, die Sie wiederherstellen möchten, gilt nicht, da die Datei immer noch geöffnet ist.
Bei der Wiederherstellung wird jedoch eine Kopie der gelöschten Datei erstellt - alles, was später von demselben Prozess in die Datei geschrieben wird, wird nicht in der Kopie gespeichert.
Leider fällt mir nichts anderes ein ... Auf Solaris war ich einmal in der Lage, eine gelöschte Datei wiederherzustellen, die noch von einem Prozess geöffnet wurde /proc/PID/fd/...
, aber procFS auf FreeBSD bietet keine solche Funktionalität ...
Laut dieser Antwort/proc/PID/fd
würde die Methode auch unter Linux funktionieren, aber linuxfonts von FreeBSD bietet diese Funktion ebenfalls nicht an. Schade eigentlich ...