Actualmente he configurado la configuración de desplazamiento hacia atrás del terminal gnome (Editar -> Preferencias de perfil -> Desplazamiento) en 10000 líneas. Me siento tentado a marcar Ilimitado, pero temo que esto podría provocar fallas en la memoria (si dejo un programa con muchos resultados ejecutándose durante la noche, no me gustaría que fallara debido a esto).
Mis preguntas son:
¿Estas líneas de desplazamiento hacia atrás están almacenadas en la memoria o están almacenadas en caché en un archivo en el disco?
Si cambio de 10000 a 100000 o a 1 millón, ¿todavía estoy a salvo? ¿Qué parámetros (RAM, espacio libre en disco, número de terminales abiertos) debo tener en cuenta)? ¿Es seguro seleccionar Ilimitado?
Respuesta1
Aparentemente se almacena en archivos borrados en el disco, según datos muy interesantes.entrada en el blog:
Podría simplemente mirar qué archivos
gnome-terminal
tenía abiertos, así quelsof
al rescate. Luego descubrí que estaba siendo astuto, tenía varios archivos llamados/tmp/vteXYZ1tv
abiertos, pero ya los había eliminado. Por lo tanto, no podrá verlos mientras navega y se eliminarán cuando se cierre el programa. Esto tiene sentido, significa que cuando se cierra el proceso, no importa cómo (al menos eso creo), se puede recuperar el espacio de los archivos, es decir, no obtendremos archivos sobrantes en caso de una falla del programa o unakill -9
. Sin embargo, se pueden restaurar, mi manera (probablemente hay otras) fue hacer un análisisls -l
/proc/<gnome-terminal pid>/fd
para ver a qué apuntan. Luego puedes hacercat
esto para crear un nuevo archivo. Éstas son sólo una copia literal de la salida del terminal. Sin compresión. No nada. Resulta que uno de los historiales de mi terminal tenía casi 900 MB. Pero eso fue sólo después de que se escupieran datos aleatorios muy rápidamente durante bastante tiempo, lo que es poco probable que suceda en el uso normal.
Y recalcaré esto nuevamente: el cartel se había publicado base64 < /dev/urandom
por un tiempo, buscando aumentos en el uso de memoria o disco: 900 MB sería un uso excepcional.
Respuesta2
gnome-terminal
(En realidad vte
) de hecho almacena el desplazamiento hacia atrás en un archivo eliminado inmediatamente debajo /tmp
(más precisamente: debajo de la ubicación del archivo temporal estándar influenciada por $TMPDIR
y tal vez algunos similares).
Este diseño se eligió principalmente para que el desplazamiento hacia atrás sea ilimitado y no cause errores de OOM. Es mucho menos probable que el disco se llene, e incluso si eso sucede, es menos dañino para todo el sistema que quedarse sin memoria.
vte-0.40
(que probablemente aparecerá en Ubuntu 15.10 WW) comprimirá y cifrará estos archivos. Esto reducirá el almacenamiento requerido a aproximadamente un tercio o un cuarto de su tamaño (si su aplicación produce X cantidad de datos como texto sin formato, en algún lugar entre X/4 .. X/3 es una estimación razonable para el almacenamiento que se requerirá) y también elimina el problema de privacidad/seguridad en caso de que alguien obtenga acceso sin formato al disco duro.
Estamos planeando agregar una opción para almacenar el desplazamiento hacia atrás en la memoria, casi igual que si estuviera /tmp
en tmpfs
. Si todo va según lo previsto, esto aparecerá en vte-0.42
y a su vez en Ubuntu 16.04 XX LTS. Aunque no puedo prometerlo.