¿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"; fiPuedes mirar la variable $ TERM.
echo $TERMSi es una
screensesió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 alsudoentorno, a diferencia de la$STYopció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
captioncomando en el~/.screenrces 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
.screenrcarchivo 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ícitamenteAttachedversusDetachedestado.Ejemplo adjunto:
Ejemplo separado:
fuente