¿De alguna manera es posible verificar si estoy ahora en sesión de pantalla? Lo necesito para determinar si presionar ctrl + d me desconectaría del servidor o simplemente cerraría la pantalla actual. Gracias.
gnu-screen
console
wlk
fuente
fuente
if test -n "$STY"; then printf "This is a screen session named '$STY'.\n"; else printf "This is NOT a screen session.\n"; fi
Puedes mirar la variable $ TERM.
echo $TERM
Si es una
screen
sesión, el término variable debería devolver "pantalla".Ctrl-a -d (para salir de la pantalla)
También verifique: https://stackoverflow.com/questions/3472287/how-do-you-tell-if-the-current-terminal-session-is-in-gnu-screen
fuente
"$TERM" = "screen"
parece conservarse al ingresar alsudo
entorno, a diferencia de la$STY
opción.A menos que haya cambiado las combinaciones de teclas predeterminadas, puede hacer Ctrl+ a-> Ctrl+ t, que mostrará la hora, si está en la pantalla. Esto funcionará incluso si tiene ssh: d en otro lugar, a diferencia de las otras sugerencias.
fuente
El
caption
comando en el~/.screenrc
es una buena manera de diferenciar una sesión de pantalla.Personalmente estoy usando esto:
Agrega una línea como esta en la parte inferior de la pantalla:
Con la primera parte (nombre del sistema + carga) en verde y la fecha en rosa. ¡Útil y difícil de perder!
fuente
He encontrado otra solución:
modificar su
.screenrc
, por lo que mi sesión de pantalla se ve completamente diferente de la terminal normal.fuente
.screenrc
archivo de ejemplo .para ver tus sesiones y
para reconectarse a uno desconectado, si está separado.
para volver a conectar a uno desconectado.
fuente
Hacer un
screen -ls
. Va a indicar explícitamenteAttached
versusDetached
estado.Ejemplo adjunto:
Ejemplo separado:
fuente