2011-02-24 03:10:27 +0000 2011-02-24 03:10:27 +0000
128
128

¿Cómo separar una sesión tmux que ya está en un tmux?

He abierto una sesión tmux en mi máquina local, y ssh a la máquina remota. Después de esto, escribí el comando “tmux attach” en la máquina remota, entonces obtuve una sesión tmux remota en mi sesión tmux local.

Ahora quiero separar la sesión tmux remota, he intentado

C-b d

pero se separa mi sesión tmux local en lugar de la remota.

¿Cómo puedo desconectar la sesión tmux remota?

Respuestas (4)

172
172
172
2011-02-24 04:21:36 +0000
C-b C-b d

(asumiendo las vinculaciones por defecto)

El primer C-b es interpretado por su tmux local (porque es el primero en ver todas sus pulsaciones). El segundo C-b es un comando que hace que su tmux local envíe un C-b a su panel activo; este C-b generado llega al tmux remoto. El d pasa a través del tmux local sin cambios; cuando llega al tmux remoto desencadena el comando detach.

  1. Usted escribe C-b.
    Su tmux local lo interpreta como la clave del prefijo; no se envía nada a los procesos que se ejecutan bajo el tmux local.
  2. Usted escribe C-b.
    Su tmux local lo tiene ligado al comando send-prefix.
  3. Su tmux local envía un C-b al proceso que se ejecuta en el panel activo (ssh).
  4. ssh lo reenvía (a través de sshd, etc.) al proceso que se ejecuta en el extremo remoto (tmux remoto).
    Su tmux remoto lo interpreta como la clave del prefijo; no se envía nada a los procesos que se ejecutan bajo el tmux remoto.
  5. Usted escribe d.
    Su tmux local lo pasa normalmente (ya que el segundo C-b terminó una secuencia de teclas de comando completa para el tmux local).
    Su tmux remoto lo tiene ligado a detach-client; desliga al cliente activo.

Esto es lo mismo que cuando necesitas enviar un C-b a cualquier programa que se ejecute dentro de una sesión tmux. Si quisieras enviar C-b a tu shell normal (por ejemplo, porque tu shell está usando la edición estilo Emacs donde C-b es backward-char (y no te gusta usar las teclas de dirección) tendrías que usar C-b** C-b ** para obtener un único** C-b** al shell.

51
51
51
2011-09-24 12:00:19 +0000

Otra forma de hacerlo sin preocuparse de que los keybindings lleguen a la instancia tmux correcta es escribir tmux detach en la sesión tmux remota.

8
8
8
2013-01-21 16:43:49 +0000

He probado la primera respuesta sin éxito.

Pude obtener los resultados que quería haciendo lo siguiente:

tmux attach

Entré en tmux y vi que la otra sesión seguía conectada

Así que desconecté mi sesión actual para volver a un shell: Ctrl + b; d

Entonces emití lo siguiente:tmux attach -d

Esto dice que se conecte a la sesión por defecto, y desconecte todas las demás sesiones actualmente conectadas. Ver la página man en Clientes y Sesiones

attach-session [-dr] -t target-session Si se ejecuta desde fuera de tmux, crea un nuevo cliente en la terminal actual y lo adjunta a target-session. Si se utiliza desde dentro, cambia el cliente actual. Si se especifica -d, cualquier otro cliente adjunto a la sesión se separa._ -r significa que el cliente es de sólo lectura (sólo las claves vinculadas al comando detach-client tienen algún efecto)

0
0
0
2018-03-12 06:28:47 +0000

Si quiere probar otra opción, siga los siguientes pasos

  1. Desconecte la sesión actual de tmux con Ctrl+b d . De modo que ahora vaya a la línea de comandos de la terminal normal.
  2. Busque la sesión que está actualmente conectada
  3. Ejecute este comando para desconectar la sesión ya conectada tmux ls