Respuestas:
Puede mirar la $STY
variable (una variable establecida por el comando de pantalla ). Si no es "", entonces está en una sesión de pantalla.
Estoy en pantalla
$ echo $STY
29624.pts-1.iain-10-04
$
No estoy en pantalla
$ echo $STY
$
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".
root@deore:/volumes# echo $TERM
screen
Ctrl-a -d (para salir de la pantalla)
root@deore:/volumes# echo $TERM
xterm
También verifique: https://stackoverflow.com/questions/3472287/how-do-you-tell-if-the-current-terminal-session-is-in-gnu-screen
"$TERM" = "screen"
parece conservarse al ingresar al sudo
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.
El caption
comando en el ~/.screenrc
es una buena manera de diferenciar una sesión de pantalla.
Personalmente estoy usando esto:
$ cat ~/.screenrc
caption always "%{= kc}Screen session on %H (system load: %l)%-28=%{= .m}%D %d.%m.%Y %0c"
Agrega una línea como esta en la parte inferior de la pantalla:
Screen session on gbook (system load: 1,75 1,74 1,68) Lun 05.01.2015 13:01
Con la primera parte (nombre del sistema + carga) en verde y la fecha en rosa. ¡Útil y difícil de perder!
He encontrado otra solución:
modificar su .screenrc
, por lo que mi sesión de pantalla se ve completamente diferente de la terminal normal.
.screenrc
archivo de ejemplo .
Hacer un screen -ls
. Va a indicar explícitamente Attached
versus Detached
estado.
Ejemplo adjunto:
$ screen -ls | grep tached
3132.pts-0.esavo00 (Attached)
Ejemplo separado:
$ screen -ls |grep tached
3132.pts-0.esavo00 (Detached)