Como posso reiniciar automaticamente um painel tmux (Byobu) quando a tarefa terminar?

1

Eu preciso de uma maneira de reiniciar imediatamente o processo principal em um painel tmux depois que o painel tiver terminado o processo.

Eu uso o byobu-tmux para executar vários componentes de um aplicativo cliente-servidor (grails) que estou desenvolvendo. Eu escrevi um script de shell que abre painéis e inicia todos os componentes:

byobu-tmux split-window -h "sleep 10; <client-1-start-script>"
byobu-tmux split-window -t 1 -v -p 66 "sleep 10; <client-2-start-script>"
byobu-tmux split-window -t 2 -v -p 50 "sleep 10; <client-3-start-script>"
byobu-tmux split-window -t 0 -v "<server-start-script>"

Esse script funciona, mas, como você pode esperar do tmux, sempre que você mata uma das partes, ele fecha esse painel. Eu também tentei adicionar um wrapper bash:

byobu-tmux split-window <opts> "<script>; byobu-tmux respawn-pane"

e use um ambiente explícito de bash:

byobu-tmux split-window <opts> "bash -i -c \"<script>\""

Esta questão demonstra como manter o painel aberto, mas existe alguma maneira de obter o comando que foi executado na criação do painel para executar novamente em vez de fechar o painel?

    
por Joel Murphy 12.01.2017 / 16:59

1 resposta

2

Veja os comandos:

e amigos no pacote run-one no Ubuntu.

Basta colocar seu comando em um desses, conforme apropriado.

Divulgação completa: Eu sou o autor do Byobu , bem como o conjunto de utilidades executadas.

    
por 12.01.2017 / 17:18

Tags