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

В настоящее время я установил настройку прокрутки терминала gnome (Edit -> Profile Preferences -> Scrolling) на 10000 строк. У меня возникает соблазн поставить галочку на Unlimited, но я боюсь, что это может привести к сбоям памяти (если я оставлю программу с большим количеством выходных данных, работающей в одночасье, мне не хотелось бы, чтобы она вылетала из-за этого).

Мои вопросы:

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

  2. Если Я меняю с 10000 на 100000 или на 1 миллион, я все еще в безопасности? Какие параметры (оперативная память, свободное место на диске, количество открытых терминалов) нужно учитывать)? Выбор безлимитного сейфа?

3
задан 26 March 2015 в 23:56

2 ответа

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

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

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

2
ответ дан 26 March 2015 в 23:56

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

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

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

Мы планируем добавить опцию сохранить scrollback в памяти, в значительной степени одинаково к тому, как будто Ваш/tmp был на tmpfs. Если все пойдет как запланировано, то это появится в vte-0.42 и в свою очередь в Ubuntu 16.04 X.X. LTS. Я не могу обещать его, все же.

3
ответ дан 26 March 2015 в 23:56

Другие вопросы по тегам:

Похожие вопросы: