OK, soy nuevo en esto. Instalé tmux
para 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 dejarlo en ejecución). 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 del programa Terminal por completo y volver a abrirlo. Alguna idea sobre cómo salir de la ventana tmux sin salir todo el programa de Terminal?
Comentarios
Responder
Desconectar de la sesión actualmente adjunta
Sesión
Ctrl + b d o Ctrl + b :detach
Pantalla
Ctrl + a Ctrl + d o Ctrl + a :detach
Comentarios
- Luego, debe ejecutar
tmux attach
para ingresar a la sesión abierta nuevamente después de volver a conectarse. - I ' siempre he hecho
ENTER ~ .
Esto parece mejor. - ¿Hay espacio entre
~
y.
y también devuelvepermission denied: /home/folder
@ThomasEding - @alper Sin espacios en la expresión I escrito arriba.
Respuesta
Las respuestas anteriores están incompletas, creo. Lo que :detach
hace es cerrar las ventanas gráficas que muestran la actividad de tmux. Sin embargo, tmux en sí todavía se está ejecutando en segundo plano, como puede ver al ejecutar ps
:
myuser 1799 0.0 0.0 2500052 4632 ?? Ss 21Feb16 0:48.39 tmux new-session -s Dev
De hecho, incluso si sale de la terminal y la inicia de nuevo, cualquier proceso tmux TODAVÍA se está ejecutando en segundo plano.
Para matar realmente el proceso tmux, debe hacer:
tmux kill-session [-t session_name]
o simplemente:
kill -9 1799
Comentarios
- En mi humilde opinión, tendría más sentido comentar sobre algunas deficiencias de ' s en esa respuesta en particular y deje su publicación como una respuesta completa y contenida sin requerir que los lectores descubran qué respuestas son anteriores y luego las analicen.
- 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
. - Usar
kill -9
es absolutamente la Manera incorrecta ™ de hacer esto. Esto envía una señalSIGKILL
que no permitirá que el proceso se limpie después de sí mismo, lo que puede causar serios problemas con los recursos colgantes.SIGKILL
solo debe usarse cuando un proceso ya ha sido solicitado cortésmente para limpiar y cerrar a través deSIGTERM
o similar y, por cualquier motivo, se niega a hacerlo; incluso entonces, uno debería evitar enviarSIGKILL
si es posible. 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.
man tmux | less -p detach
Ctrl+b s
que enumerará las sesiones, navegue hasta la que desea eliminar y escriba:kill-session
.