¿Cómo forzo a desconectar Screen de otra sesión SSH?


158

Tenía la pantalla ejecutándose dentro de una sesión SSH. La terminal se congeló. Después de reiniciar Terminal, esa sesión de Screen todavía piensa que está conectada. Tal vez lo es. Quizás no sé realmente qué significa eso.

Me gustaría adjuntar a esa sesión de pantalla desde un nuevo inicio de sesión SSH. No quiero matar esa sesión de Screen ya que cosas importantes están sucediendo allí. :)

Las opciones que creo que tengo (ninguna de las cuales sé cómo resolver):

  • ¿Cómo desconecto esa sesión de pantalla?
  • ¿Cómo elimino la sesión SSH a la que está conectada esa sesión de pantalla?

Respuestas:


252

Como José respondió, screen -d -rdebería hacer el truco. Esta es una combinación de dos comandos, tomados de la página del manual.

screen -ddesconecta la sesión de pantalla que ya se está ejecutando y screen -rvuelve a conectar la sesión existente. Al ejecutar screen -d -r, fuerza la pantalla a separarlo y luego reanuda la sesión.

Si usa la capital -D -RR, cito la página del manual porque es demasiado buena para dejarla pasar.

Adjuntar aquí y ahora. Lo que sea que eso signifique, solo hazlo.

Nota: Siempre es una buena idea verificar el estado de sus sesiones mediante "screen -list".


3
También puede hacer lo screen -xque es más rápido de escribir, pero no del todo equivalente. Adjuntará la sesión por segunda vez sin desconectarse primero, lo que dará como resultado el modo de visualización múltiple.
jlh

10
recuerda "Screen Doctor"; screen -Dr
user5359531


6

Respuesta corta

  1. Vuelva a colocar sin expulsar a otros: screen -x
  2. Obtener la lista de pantallas: ^A *seleccione la que desea desconectar, presioned


Respuesta explicada

Antecedentes: cuando buscaba la solución con la misma descripción del problema, siempre recibí esta respuesta. Me gustaría proporcionar una solución más sensata. (Por ejemplo: la otra pantalla adjunta tiene un tamaño diferente y no puedo forzar el cambio de tamaño en mi terminal).

Nota: PREFIX generalmente es ^A=ctrl+a

Nota: la pantalla también se puede llamar:

  • "usuario front-end" (en el atmanual de comandos en la pantalla)
  • "cliente" (vocabulario tmux donde está esta funcionalidad detach-client)
  • "terminal" (como llamamos a la ventana en nuestra interfaz de usuario) / dependiendo de

1. Vuelva a adjuntar una sesión :screen -x

-xadjuntar a una sesión de pantalla no separada sin separarla

2. Lista de pantallas de esta sesión:PREFIX *

Es la clave de enlace predeterminado para: PREFIX :displays. Realizándolo dentro de la pantalla, identifique la otra pantalla que queremos desconectar (por ejemplo, un tamaño más pequeño). (Su pantalla actual se muestra en color más brillante / negrita cuando no está seleccionada ).

term-type   size         user interface           window       Perms
---------- ------- ---------- ----------------- ----------     -----
 screen     240x60         you@/dev/pts/2      nb  0(zsh)        rwx
 screen      78x40         you@/dev/pts/0      nb  0(zsh)        rwx

Con las flechas , seleccione la pantalla de destino , presione. d Si no sucede nada, intentó desconectar su propia pantalla y la pantalla no la desconectará. Si fue otro, dentro de un segundo o dos, la entrada desaparecerá.

Presione ENTERpara salir de la lista.

Opcionalmente: para que el contenido se ajuste a su pantalla, refluya : PREFIX F(F mayúscula)

Extracto de la página del manual de la pantalla:

muestra

Muestra una lista tabular de todos los front-end de usuarios conectados actualmente (pantallas). Esto es más útil para sesiones multiusuario. Las siguientes teclas se pueden usar en la lista de pantallas:

  • mouseclickMoverse a la línea seleccionada. Disponible cuando "mousetrack" está activado.
  • space Actualizar la lista
  • d Separar esa pantalla
  • D Separador de potencia de esa pantalla
  • C-g, entero escapeSalga de la lista

-2

Prueba el comando screen -d -r. Esto funcionó para mí ..!


2
Repetir la respuesta aceptada de 6 años no es útil
jeb
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.