Cada painel tmux é uma interface para um único pty (pseudo tty). Janelas não divididas têm um único painel; janelas divididas têm vários painéis.
O tmux não fornece uma maneira de adicionar processos extras a um painel depois que ele é iniciado com seu comando inicial. Cabe ao processo desse comando inicial (geralmente um shell) fornecer o controle de tarefa 1 para esse terminal.
Se você deseja respawn-pane -k
eliminar o que estiver em execução no painel no momento, pode usar para eliminar o comando existente e substituí-lo por um novo (por exemplo, respawn-pane -t sessionname:0.4 -k 'some -new command'
).
Mas, se você deseja manter o que está em execução no momento, pode não haver opção melhor do que simplesmente “digitar” com send-keys
.
Você pode criar um script como este (anexar por último, porque, caso contrário, o script aguardará a sua desanexação antes de continuar):
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"
Observe que, no send-keys
comando, você deve realmente digitar as letras
E n t e r, para dizer tmux
para enviar uma chave de nova linha para a janela. (Naturalmente, todo comando termina com a Enterchave.)
1 Controle de tarefa é a arbitragem entre vários grupos de processos de uma única sessão que usa o tty como seu terminal de controle. Ou seja, o Ctrl+ Zchave de suspensão, e os jobs
, fg
e bg
shell de comandos.
#{session_name}:#{window_index}.#{pane_index}
minha linha de status para ver rapidamente para qual painel enviar comandos.