salir de la ventana tmux sin salir del programa Terminal

80

OK, soy nuevo en esto. Lo instalé tmuxpara ejecutar un experimento de varios días. Después de escribir tmux new -s name, obtuve una nueva ventana con un banner verde en la parte inferior. Compilo y ejecuto el programa java. Ahora no sé cómo salir de la ventana (mientras la dejo en funcionamiento). El cursor bash (o lo que sea) no responde porque el programa java todavía se está ejecutando. Mi solución hasta ahora es salir completamente del programa Terminal y volver a abrirlo. ¿Alguna idea sobre cómo salir de la ventana tmux sin salir de todo el programa Terminal?

seteropere
fuente
2
man tmux | less -p detach
jasonwryan

Respuestas:

147

Separar de la sesión actualmente adjunta

Sesión

Ctrl+ b do Ctrl+b :detach

Pantalla

Ctrl+ a Ctrl+ do Ctrl+a :detach

Ruban Savvy
fuente
Luego debe ejecutar tmux attachpara ingresar a la sesión abierta nuevamente después de volver a conectarse.
Besi
1
Siempre lo he hecho. ENTER ~ .Esto parece más agradable.
Thomas Eding
8

Las respuestas anteriores son incompletas, creo. Lo que :detachhace es cerrar las ventanas gráficas que muestran actividad tmux. Sin embargo, tmux todavía se está ejecutando en segundo plano, como puede ver ejecutando ps:

myuser 1799 0.0 0.0 2500052 4632 ?? Ss 21Feb16 0:48.39 tmux new-session -s Dev

De hecho, incluso si sale del terminal y lo inicia de nuevo, los procesos tmux TODAVÍA se ejecutan en segundo plano.

Para matar el proceso tmux en sí, debes hacer lo siguiente:

tmux kill-session [-t session_name]

o simplemente:

kill -9 1799

JESii
fuente
55
En mi opinión, tendría más sentido comentar sobre las deficiencias de algunas respuestas en esa respuesta en particular y dejar su publicación como una respuesta completa y contenida sin requerir que los lectores descubran qué respuestas son anteriores y luego las analicen.
techraf
2
Creo que OP específicamente quería que el proceso en segundo plano (Java, en su caso) continuara ejecutándose, por lo que matarlo sería contraproducente. Más interesante sería volver a adjuntar más tarde al proceso separado con tmux attach-session.
ThomasH
Usar kill -9es absolutamente la manera incorrecta (tm) de hacer esto. Esto envía una SIGKILLseñal que no permitirá que el proceso se limpie después de sí mismo, lo que puede causar serios problemas con los recursos colgantes. SIGKILLsolo debe usarse cuando a un proceso ya se le ha pedido cortésmente que lo limpie y cierre por vía SIGTERMo similar y, por cualquier razón, se niegue a hacerlo; incluso entonces, uno debería evitar enviar SIGKILLsi pueden. Esta respuesta infiere (incorrectamente) que debería ser una de las primeras cosas que una persona debería hacer para cerrar un proceso en segundo plano como un servidor tmux.
Eestrada