Строки прокрутки терминала Gnome?

Строки прокрутки терминала Gnome?

В настоящее время я установил настройку прокрутки терминала gnome (Правка -> Настройки профиля -> Прокрутка) на 10000 строк. Я хочу поставить галочку «Неограниченно», но боюсь, что это может привести к сбоям памяти (если я оставлю программу с большим объемом вывода работать на ночь, я бы не хотел, чтобы она из-за этого упала).

У меня есть вопросы:

  1. Сохраняются ли эти строки прокрутки в памяти или они кэшируются в файле на диске?

  2. Если я изменю с 10000 на 100000 или на 1 миллион, я все еще в безопасности? Какие параметры (ОЗУ, свободное место на диске, количество открытых терминалов) мне нужно учитывать)? Безопасен ли выбор Unlimited?

решение1

По-видимому, он хранится в удаленных файлах на диске, согласно очень интересным данным.Сообщение блога:

Я мог просто посмотреть, какие файлы gnome-terminalбыли открыты, так что lsofэто спасение. Затем я обнаружил, что он был скрытным, у него было несколько файлов, называемых /tmp/vteXYZ1tvоткрытыми, но он уже удалил их. Таким образом, вы не можете видеть их при просмотре, и они будут удалены, когда программа закроется. Это имеет смысл, это означает, что когда процесс закрыт, неважно, как (по крайней мере, я думаю), пространство файлов может быть восстановлено, т. е. мы не получим оставшиеся файлы при сбое программы или kill -9. Однако их можно восстановить, мой способ (вероятно, есть и другие) заключался в том, чтобы сделать , ls -l /proc/<gnome-terminal pid>/fdчтобы увидеть, на что они указывают. Затем вы можете сделать catэто, чтобы создать новый файл. Это просто дословная копия вывода терминала. Никакого сжатия. Ничего. Как оказалось, одна из моих историй терминала составляла почти 900 МБ! Но это было только после того, как случайные данные выдавались очень быстро в течение довольно долгого времени, что вряд ли произойдет при обычном использовании.

И я еще раз это подчеркну: постер работал base64 < /dev/urandomнекоторое время, проверяя увеличение использования памяти или диска — 900 МБ были бы исключительным использованием.

решение2

gnome-terminal(на самом деле vte) действительно сохраняет прокрутку в немедленно удаляемом файле в /tmp(точнее: в стандартном расположении временных файлов, на которое влияет $TMPDIRи, возможно, несколько похожих).

Этот дизайн был выбран в основном для того, чтобы неограниченная прокрутка не вызывала ошибок OOM. Диск гораздо менее вероятно заполнится, и даже если это произойдет, это менее вредно для всей системы, чем нехватка памяти.

vte-0.40(который, скорее всего, появится в Ubuntu 15.10 WW) сожмет и зашифрует эти файлы. Это сократит требуемое хранилище примерно до трети-четверти его размера (если ваше приложение создает X объем данных в виде обычного текста, то где-то между X/4 .. X/3 — разумная оценка необходимого хранилища), а также избавит от проблемы конфиденциальности/безопасности в случае, если кто-то получит прямой доступ к жесткому диску.

Мы планируем добавить возможность сохранять прокрутку в памяти, примерно так же, как если бы вы /tmpбыли на tmpfs. Если все пойдет по плану, это появится vte-0.42в Ubuntu 16.04 XX LTS. Хотя я не могу этого обещать.

Связанный контент