Algumas notas de wait-for
Portanto, o uso básico de espera não é muito complicado se você pensar nele como algo análogo ao threading primitivas de concorrência
Não está realmente ligado a outras funcionalidades do tmux, apenas uma implementação conveniente do IPC.
wait-for event_name
é como esperar por um evento
wait-for -S event_name
é um meio de sinalizar um evento
As opções -U
e -L
são ortogonais e agem como semáforos
Respondendo à sua pergunta diretamente
Você pode resolver esse tipo de condição de corrida com wait-for
, mas somente se os comandos forem síncronos.
tmux send-keys 'sync-command ; tmux wait-for -S command-finished' C-m
tmux wait-for command-finished
O problema que você tem aqui é que o comando ssh não é síncrono: você não pode dizer quando terminou.
Analisando o manual , podemos encontrar a diretiva LocalCommand
que parece fazer o que queremos: executar um comando localmente após o término da conexão, para que possamos ligar
ssh [email protected] -o 'PermitLocalCommand yes' -o 'LocalCommand tmux wait-for -S done'