salir de la ventana de tmux sin salir del programa Terminal

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

  • man tmux | less -p detach
  • Para obtener información más interactiva De esta forma, puede hacer Ctrl+b s que enumerará las sesiones, navegue hasta la que desea eliminar y escriba :kill-session.

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 devuelve permission 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ñal SIGKILL 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 de SIGTERM o similar y, por cualquier motivo, se niega a hacerlo; incluso entonces, uno debería evitar enviar SIGKILL 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.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *