Tmux: detach otras sesiones que no son la tuya

Una de las fantáticas features de tmux es la sencillez con la que puedes conectar múltiples clientes a la misma sesión de forma simultánea. Si lo has hecho alguna vez, con terminales de diferentes tamaños, habrás visto algo tal que así:

Esto ocurre porque tmux muestra lo mismo a todos los clientes conectados a la sesión, así que rellena los espacios libres que puedan quedar. A mi me ocurre constantemente entre distintas máquinas conectadas a la misma sesión y no he encontrado de forma sencilla cómo detachear (¡sic!, ¡qué mal suena en castellano!) otras sesiones.

Así que buscando una respuesta en las páginas man de tmux la respuesta es sencilla (asumiendo C-b como comando desencadenante de tmux): C-b D nos daría a escoger la sesión a la que le queremos hacer detach:

Este comando es un shortcut de detach -t [target-client]. Enjoy it!

Otra alternativa, si tienes tmux >= 1.7 puedes ejecutar tmux detach -a para cargarte a todos los clientes directamente desde la linea de comandos, o si lo prefieres C-b :detach -a.

Y la última, si solamente tienes una sesión y varios clientes, puedes hacer directamente tmux attach -d para conectarte a esa sesión matando el resto de posibles clientes conectados. Esta última opción fue la que mejor funcionó en mi caso.

Así que, en resumen, he actualizado mi comando de attach a tmux -u a -d (utf8, attach a la única sesión que hay y detach del resto de clients que pudieran estar activos).

Artículo original y pantallazos sacados de https://coderwall.com/p/vszahq.

sysadmin

About the author

Óscar
has doubledaddy super powers, father of Hugo and Nico, husband of Marta, *nix user, Djangonaut and open source passionate.