Запустите 8 команд параллельно в выравниваемых панелях tmux.

У меня есть утилита мониторинга, состоящая из 8 отдельных утилит, предназначенных для мониторинга нескольких аспектов системы.
Все они работают по принципу htop: периодически перезаписывают экран, а не завершают работу после запуска.

Чтобы немного облегчить себе жизнь, я подумал, что было бы полезно создать сценарий, который я мог бы запускать на удаленном сервере, который открывал бы все эти команды в терминальном мультиплексоре каким-то разумным способом. панели одинакового размера (было бы неплохо, если бы расположение автоматически определялось в зависимости от размера терминала (т. е. 4x2 при просмотре в полноэкранном режиме на широкоэкранном мониторе, но это не обязательно).

По сути, я хочу иметь возможность запускать 8 разных команд одновременно на разных панелях одинакового размера в одном терминале. Я попытался использовать для этого tmux, используя аргумент разделенного окна, но это не позволяет мне одинакового размера панелей, поскольку они рекурсивны, и поэтому следующая панель всегда вдвое меньше предыдущей панели.

1 ответ

Наконец-то разобрался:

      #!/bin/bash
# I'd love to add comments line by line but bash wont let me

tmux \
new-session \
'command 1'\; \
split-window \
'command 2'\; \
split-window -h \
'command 3'\; \
split-window \
'command 4'\; \
select-layout even-horizontal\; \
select-pane -t 0 \; \
split-window  -v \
'command 5'\; \
select-pane -t 2 \; \
split-window  -v \
'command 6'\; \
select-pane -t 4 \; \
split-window  -v \
'command 7'\; \
select-pane -t 6 \; \
split-window  -v \
'command 8'\; \

вот как это работает:

  • создайте новый сеанс с помощью команды Command1
  • создайте 3 новых разделенных окна с большим количеством команд
  • измените порядок этих разделений в соответствии с равномерно-горизонтальным
  • снова выберите первую панель
  • разделите его пополам, на этот раз вертикально
  • выберите второе окно, которое мы создали, которое из-за предыдущей команды теперь имеет индекс 2
  • то же самое с шестым расколом
  • и так далее
Другие вопросы по тегам