¿Es posible mantener el "estado" de una ventana de pantalla GNU (o simplemente un Shell estándar) para que pueda volver a cargar todo después de un reinicio:
Realmente no es posible guardar una sesión de pantalla completa.
Lo que puede hacer es crear un .screenrc
Adecuado que configurará algunas cosas después de reiniciar su sistema.
Aquí hay algunos comentarios sobre las cosas que enumeró:
Uso 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 el nombre de su 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.
¿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 realmente necesita esto y no quiere ninguna compensación, puede pensar en un script de Shell, que lea el estado actual de la pantalla, guarde el número de shells, variables de entorno, etc. y ponga esta información en un script de inicio llamado por su .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 GNU Sesiones de pantalla hasta cierto punto.
Hay una herramienta para congelar el estado de un proceso llamado criópido . Sin embargo, actualmente no funciona con la pantalla GNU ya que no admite volver a crear 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.
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 se debe hacer al iniciar sesión allí, en lugar de que todas sean iguales por su nfs montado/home o similar.
HTH, -pbr