Кожен tmux панель - це інтерфейс для однієї pty (псевдо tty). Нерозділені вікна мають єдину панель; Розділені вікна мають кілька панелей.
tmux не надає можливість додавати додаткові процеси до панелі, як тільки він був запущений з його початковою командою. Саме процес початкової команди (як правило, оболонка) забезпечує контроль роботи 1 для цього терміналу.
Якщо ви хочете, щоб клацати все, що в даний час працює на панелі, ви можете використовувати respawn-pane -k
убити існуючу команду та замінити її новою (наприклад, respawn-pane -t sessionname:0.4 -k 'some -new command'
).
Але, якщо ви хочете зберегти те, що в даний час працює на панелі, то не може бути кращого варіанту, що просто "ввести в нього" з send-keys
.
Ви можете створити такий сценарій (прикріпити останній, тому що інакше сценарій буде чекати, поки ви від'єднаєтесь, перш ніж продовжити):
session=whatever
window=${session}:0
pane=${window}.4
tmux send-keys -t "$pane" C-z 'some -new command' Enter
tmux select-pane -t "$pane"
tmux select-window -t "$window"
tmux attach-session -t "$session"
Зверніть увагу, що на send-keys
Ви повинні набрати літери E n t e r ,
розповісти tmux
, щоб надіслати ключ нового рядка до вікна.
(Природно, кожна команда закінчується на Enter ключ.)
1 Керування завданням - це арбітраж між декількома групами процесів одного сеансу, який використовує tty як контрольний термінал. Тобто Ctrl + Z клавішу призупинення і jobs
, fg
, і bg
команд оболонки.
#{session_name}:#{window_index}.#{pane_index}
у моєму рядку стану, щоб я швидко побачив, на яку панель надсилати команди.