Чи існує простий спосіб "перезапустити" панель tmux?


48

Припустимо, у мене tmuxрозділено вікно (1.7) наступним чином:

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

Тепер вертикальні розміри були налаштовані, тому це аж ніяк не одна з макетів за замовчуванням.

Іноді, коли програма застрягає або коли ви перезавантажуєте машину, до якої ви підключились ssh, панель «висить». Тобто нічого, крім, kill-paneздається, працює.

Однак, оскільки немає простого способу відновлення вище розділеної конфігурації, коли панель №1 була kill-paned, я хотів би "перезапустити" її.

Відповіді:


82

Переглядаючи посібник, команда respawn-paneвразила мене, але виявилося, що це не працює. Читаючи уважніше, виявилося, що respawn-pane -kце відповідь, оскільки це вбиває запущену команду.

Таким чином панель можна "перезапустити" та породжувати заново на місці.

Так <prefix>+, :а потім введіть respawn-pane -kі натиснітьEnter


4
Або використовувати без, -kякщо ви створили панель в remain-on-exitрежимі і вбили команду самостійно.
петерф

тебе породжували заново, амінь
камбюнктурна

4

Насправді є спосіб відновити макет - list-windowsдає вам опис макета для всіх вікон у сеансі і select-layoutможе переварити проаналізувати рядок та встановити макет відповідним чином (див. select-layoutНа сторінці людини tmux(1)).

Що стосується вашої проблеми з ssh - ssh-сервери повинні закрити з'єднання, коли система закривається (хоча я бачив деякі дистрибутиви Linux, які якимось чином псують належну поведінку, не вимикаючи демона ssh і запускаючи сеанси належним чином) - якщо це так, дивіться ESCAPE CHARACTERSрозділ (та інші місця, що посилаються на нього) у ssh(1)символі - escape, після якого .(крапка) насильно припиняє з'єднання на стороні клієнта. Звичайно, це не допоможе, якщо ви просто породжували панель із sshзапуском у ньому, але якщо ви відчуваєте проблему частіше, можливо, ви краще хочете запустити оболонку в панель і зателефонувати за допомогою ssh.


Я підтримав вашу відповідь, оскільки це додає значення. Але ось чому символи втечі не обов'язково є гарною ідеєю: використання сеансу ssh для підключення до сесії tmux, яка має відкриті ssh-з'єднання. Тоді вам раптом потрібно подумати над тим, як надіслати персонаж втечі за межі першого ssh-з'єднання, щоб досягти внутрішнього (-ів). І btw, я зазвичай запускаю ssh з оболонки.
0xC0000022L

1
Приблизно те саме, що і під час запуску вкладених сесій tmux. Або у вас є різні символи втечі у зовнішньому та внутрішньому сеансі (будь то ssh чи tmux один), або ви просто двічі надсилаєте символ втечі - завдяки чому він переходить як єдиний у вкладений сеанс. в tmux).
петерф
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.