it-swarm-es.tech

Guardar completo GNU estado de sesión de pantalla

¿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:

  • El número de conchas abiertas
  • El nombre de cada Shell
  • El directorio actual de cada Shell
  • La historia de cada caparazón
  • Si es posible, sus variables de entorno
32
Barthelemy

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ó:

  • El número de conchas abiertas
  • El nombre de cada Shell
  • El directorio actual de cada Shell

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.

  • 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 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.

20
echox

Me topé con un proyecto llamado screen-session . Le permite guardar y volver a cargar GNU Sesiones de pantalla hasta cierto punto.

10
BUGHUNTER

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.

2
fschmitt

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

0
pbr