¿Hay una manera fácil de "reiniciar" un panel tmux?

48

Suponga que tengo una tmuxventana (1.7) dividida de la siguiente manera:

 ________________________
|           1            |
|                        |
|-----------+------------|
|     2     |      3     |
|___________|____________|

Ahora, los tamaños verticales se han personalizado, por lo que no es uno de los diseños predeterminados.

En ocasiones, cuando un programa se atasca o cuando reinicia una máquina a la que se conectó ssh, el panel se "cuelga". Es decir, nada más que kill-paneparece funcionar.

Sin embargo, dado que no hay una manera fácil de reconstruir la configuración dividida anterior una vez que el panel # 1 ha sido kill-paned, me gustaría "reiniciarlo".

0xC0000022L
fuente

Respuestas:

81

Mirando el manual, el comando respawn-paneme golpeó, pero resultó que esto no funcionó. Leyendo más de cerca, resultó que esa respawn-pane -kera la respuesta, ya que mataría el comando en ejecución.

De esta manera, un panel se puede "reiniciar" y generar de nuevo en su lugar.

Entonces <prefix>+ :y luego entra respawn-pane -ky presionaEnter

0xC0000022L
fuente
44
O use sin -ksi creó el panel en remain-on-exitmodo y eliminó el comando usted mismo.
Peter
te han engendrado de nuevo, amén
revoltoso
4

En realidad, hay una manera de reconstruir un diseño: list-windowsle brinda una descripción del diseño de todas las ventanas de una sesión y select-layoutpuede digerir analizar la cadena y establecer el diseño adecuadamente (consulte select-layoutla página del manual tmux(1)).

En cuanto a su problema ssh: los servidores ssh deben cerrar la conexión una vez que el sistema se apaga (aunque he visto algunas distribuciones de Linux que de alguna manera estropean el comportamiento correcto al no cerrar el demonio ssh y ejecutar sesiones correctamente), si ese es el caso, vea la ESCAPE CHARACTERSsección (y otros lugares que se refieren a ella) en el ssh(1)carácter de escape seguido de .(un punto) termina forzosamente la conexión en el lado del cliente. Por supuesto, no ayuda si solo generó el panel sshejecutándose en él, pero si experimenta el problema con más frecuencia, tal vez prefiera ejecutar un shell en el panel y llamar a ssh desde allí.

Peterph
fuente
Voté tu respuesta porque agrega valor. Pero he aquí por qué los caracteres de escape no son necesariamente una buena idea: usar una sesión ssh para conectarse a una sesión tmux que tenga conexiones ssh abiertas. Entonces, de repente, debe pensar en cómo enviar el carácter de escape más allá de la primera conexión ssh para alcanzar el (los) interior (es). Y por cierto, generalmente ejecuto ssh desde un shell.
0xC0000022L
1
Prácticamente lo mismo que cuando ejecuta sesiones tmux anidadas. O tiene diferentes caracteres de escape en la sesión externa e interna (ya sea ssh o tmux one) o simplemente envía el carácter de escape dos veces, lo que lo convierte en uno solo en la sesión anidada (comportamiento cableado para ssh, configurable en tmux).
Peter