Realmente no es posible guardar una sesión de pantalla completa.
Lo que puede hacer es crear un apropiado .screenrc
que configurará algunas cosas después de reiniciar su sistema.
Aquí hay algunos comentarios sobre las cosas que enumeró:
- El número de conchas abiertas
- El nombre de cada caparazón.
- El directorio actual de cada shell
Utilizo algo como esto en mi .screenrc
para abrir algunos shells específicos al inicio:
## set the default shell
shell zsh
# screens
screen -t 'zsh'
screen -t 'mutt' mutt
screen -t 'zsh' /home/user/bin/scriptToRun
[..]
Obtendrá la cadena entre '' como su nombre de ventana y el comando después de que el nombre se ejecute en su shell predeterminado. Incluya cualquier script que desee, por ejemplo, cambie en un directorio específico y abra algunos registros.
- La historia de cada caparazón.
¿Alguna vez has pensado en compartir la historia de los shells en tus sesiones? En mi humilde opinión, esto hace las cosas mucho más fáciles. En ZSH se hace con setopt SHARE_HISTORY
en su.zshrc
- Si es posible, sus variables de entorno
Si realmente necesita esto y no desea ninguna compensación, puede pensar en un script de shell, que lee el estado actual de la pantalla, guarda el número de shells, variables de entorno, etc. y coloca esta información en un script de inicio llamado por tu .screenrc
. Para mí, esto no valdría la pena porque aprecio un entorno limpio después de un reinicio, si puedo personalizar las ventanas predeterminadas para la pantalla.
Me topé con un proyecto llamado screen-session . Le permite guardar y volver a cargar sesiones de GNU Screen hasta cierto punto.
fuente
Hay una herramienta para congelar el estado de un proceso llamado crioides . Sin embargo, actualmente no funciona con la pantalla GNU ya que no admite la recreación de una jerarquía de subprocesos. Afirman que quieren lograr esto en el futuro, pero el proyecto no parece estar demasiado activo en este momento. Sin embargo, es posible que desee rastrear su progreso.
fuente
Construí algo similar en Solaris años atrás. Ni siquiera relacionado con la pantalla; estaba relacionado con la sesión. "si $ TTY = lo que sea". echox tiene la idea correcta.
Consejo: si está haciendo esto en varias máquinas, reconozca que cada máquina merece su propia definición de lo que debe hacerse al iniciar sesión allí, en lugar de que todas sean iguales por su nfs montado / home o similar.
HTH, -pbr
fuente