Ich suche nach etwas, von dem ich vermute, dass es es nicht gibt: Eine nicht blockierende gepufferte Named Pipe (FIFO) zur Verwendung über die Befehlszeile. Gibt es so etwas?
Hier ist der Anwendungsfall: Angenommen, ich habe einen Prozess, der eine lange Zeit im Hintergrund abläuft und eine Menge Ausgabe anstößt stdout
. Ich kümmere mich nicht wirklich um die Ausgabe und möchte sie nicht speichern (vielleicht habe ich nicht genug Platz dafür), aber ich möchte in regelmäßigen Abständen "vorbeischauen" und verfolgen, was es tut, und dann wieder aussteigen und überlasse es seiner Arbeit. Daher möchte ich die Ausgabe auf diese theoretisch gepufferte, nicht blockierende Named Pipe umleiten und dann regelmäßig darauf zugreifen.
Im Grunde möchte ich so anfangen ( 10M
als Größe des Puffers):
mkmagicfifo magicfifo 10M
spewingprocess > magicfifo &
... und schauen Sie regelmäßig vorbei, um zu sehen, was los ist ...
tail -f magicfifo
... ohne die magicfifo
gesamte Ausgabe zu speichern (also keine normale Datei) und ohne den Ausspeisungsprozess zu blockieren, wenn sie voll ist und nicht abgegriffen wird (also keine ganz normale Named Pipe).
Ich denke nicht, dass Lösungen dies beinhalten tail
oder prune
tun werden (naja, ich kann mir eine Problemumgehung vorstellen, die dies beinhaltet tail
), da tail
ich trotzdem alle Daten irgendwo speichern müsste (wenn ich sie sehen und nicht mehr sehen möchte). und prune
muss die Datei neu schreiben, vermutlich (ich gebe zu, ich habe das nicht versucht / bewiesen), um die Umleitung des Prozesses zu unterbrechen, der die gesamte Ausgabe generiert.
Ich erwarte, ich könnte ein Hilfsprogramm schreiben, um dies zu tun, aber * nix hat so viele coole Aspekte von Dateien und Pipes und so, dass ich einfach nicht anders kann, als zu glauben, dass es das gibt, und ich weiß es einfach nicht.
Also: Gibt es so etwas und wenn ja, was ist es?