Scrollback-Zeilen im Gnome-Terminal?

Scrollback-Zeilen im Gnome-Terminal?

Derzeit habe ich die Scrollback-Einstellung des Gnome-Terminals (Bearbeiten -> Profileinstellungen -> Scrollen) auf 10.000 Zeilen eingestellt. Ich bin versucht, Unbegrenzt anzukreuzen, aber ich habe Angst, dass dies zu Speicherabstürzen führen könnte (wenn ich ein Programm mit viel Ausgabe über Nacht laufen lasse, möchte ich nicht, dass es deswegen abstürzt).

Meine Fragen sind:

  1. Werden diese Scrollback-Zeilen im Speicher abgelegt oder in einer Datei auf der Festplatte zwischengespeichert?

  2. Wenn ich von 10000 auf 100000 oder auf 1 Million wechsle, bin ich dann immer noch sicher? Welche Parameter (RAM, freier Speicherplatz, Anzahl offener Terminals) muss ich berücksichtigen? Ist die Auswahl von Unbegrenzt sicher?

Antwort1

Es ist anscheinend in gelöschten Dateien auf der Festplatte gespeichert, nach sehr interessantenBlogeintrag:

Ich konnte einfach nachsehen, welche Dateien gnome-terminalgeöffnet waren, also lsofzur Rettung. Dann merkte ich, dass es hinterhältig war, es hatte eine Reihe von Dateien mit dem Namen „ /tmp/vteXYZ1tvopen“, aber es hatte sie bereits gelöscht. Daher können Sie sie beim Durchsuchen nicht sehen und sie werden entfernt, wenn das Programm geschlossen wird. Das ist sinnvoll, denn es bedeutet, dass, wenn der Prozess geschlossen wird, es spielt keine Rolle wie (zumindest denke ich das), der Speicherplatz der Dateien zurückgewonnen werden kann, d. h. wir bekommen keine übrig gebliebenen Dateien bei einem Programmabsturz oder einem kill -9. Sie können jedoch wiederhergestellt werden, meine Methode (es gibt wahrscheinlich auch andere) bestand darin, ein auszuführen, ls -l /proc/<gnome-terminal pid>/fdum zu sehen, worauf sie verweisen. Dann können Sie catdiese verwenden, um eine neue Datei zu erstellen. Dies sind nur eine wortgetreue Kopie der Terminalausgabe. Keine Komprimierung. Nein, nichts. Wie sich herausstellte, war einer meiner Terminalverläufe fast 900 MB groß! Aber das war nur, nachdem eine ganze Weile lang sehr schnell zufällige Daten ausgespuckt wurden, was bei normaler Verwendung unwahrscheinlich ist.

Und ich betone es noch einmal: Der Poster war base64 < /dev/urandomeine Zeit lang aktiv und suchte nach einer Erhöhung der Speicher- oder Festplattennutzung – 900 MB wären eine außergewöhnliche Nutzung.

Antwort2

gnome-terminal(tatsächlich vte) speichert den Scrollback tatsächlich in einer sofort gelöschten Datei unter /tmp(genauer: unter dem von beeinflussten Standardspeicherort für temporäre Dateien $TMPDIRund vielleicht einigen ähnlichen).

Dieses Design wurde hauptsächlich gewählt, um durch unbegrenztes Scrollback keine OOM-Fehler zu verursachen. Es ist viel unwahrscheinlicher, dass die Festplatte voll wird, und selbst wenn das passiert, ist es für das gesamte System weniger schädlich als ein Speichermangel.

vte-0.40(das höchstwahrscheinlich in Ubuntu 15.10 WW erscheinen wird) komprimiert und verschlüsselt diese Dateien. Dadurch wird der erforderliche Speicherplatz auf etwa ein Drittel bis Viertel seiner Größe reduziert (wenn Ihre App eine bestimmte Menge an Daten als Klartext erzeugt, ist irgendwo zwischen X/4 und X/3 eine vernünftige Schätzung für den erforderlichen Speicherplatz) und außerdem wird das Datenschutz-/Sicherheitsproblem beseitigt, falls jemand unverschlüsselten Zugriff auf die Festplatte erhält.

Wir planen, eine Option hinzuzufügen, um den Scrollback im Speicher zu speichern, so als ob Ihr /tmpeingeschaltet wäre tmpfs. Wenn alles nach Plan läuft, wird dies in vte-0.42und anschließend in Ubuntu 16.04 XX LTS erscheinen. Ich kann es jedoch nicht versprechen.

verwandte Informationen