Cada painel tmux é uma interface para um único pty (pseudo tty). As janelas não divididas têm um único painel; as janelas divididas têm vários painéis.
tmux não fornece uma maneira de adicionar processos extras a um painel, uma vez que tenha sido iniciado com seu comando inicial. Cabe ao processo do comando inicial (geralmente um shell) fornecer controle de tarefa 1 para esse terminal.
Se você quiser estragar o que está sendo executado no painel, use respawn-pane -k
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ê quiser manter o que está sendo executado no painel, talvez não haja uma opção melhor que simplesmente "digitando" com send-keys
.
Você pode fazer um script assim (anexe por último, porque senão o script apenas esperará você se desconectar 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 comando send-keys
, você deve digitar as letras
E n t e r ,
para informar tmux
para enviar uma nova chave para a janela.
(Naturalmente, todo comando termina com a tecla Enter ).
1 Job control é a arbitragem entre vários grupos de processos de uma única sessão que usa o tty como seu terminal de controle. Ou seja, a chave de suspensão Ctrl + Z e os comandos jobs
, fg
e bg
.