Inicie vários aplicativos em execução em shells divididos em um console

9

Preciso iniciar vários aplicativos executando em shell e monitorar sua execução. Atualmente, tenho um script principal que lança todos os aplicativos em um novo console gnome, mas eu preferiria lançá-los todos na mesma janela em telas divididas.

Esta publicação Múltiplas conchas em uma janela explica como usar telas divididas com muitos tipos de aplicativos de console, como tela, terminador e byobu. Isso funciona bem manualmente, mas eu gostaria de poder iniciar todos os meus aplicativos em um console de tela dividida automaticamente a partir do meu script principal. Na documentação das ferramentas mencionadas acima, não havia nada que eu pudesse fazer para obter isso automaticamente a partir de um script.

Alguma ideia?

jmbouffard
fonte

Respostas:

6

Você pode criar um arquivo de configuração de tela personalizado que abrirá várias divisões e iniciará seus scripts nelas. Seria algo como isto:

screen script1.sh # Open first screen and launch first script
split             # Make second split
focus             # Switch to second split
screen script2.sh # Open second screen and launch second script
split             # Make third split
focus             # Switch to third split
screen script3.sh # Open third screen and launch third script

Coloque isso em um arquivo chamado myscripts e inicie a tela com screen -c myscripts. Se você preferir divisões verticais, basta adicionar -v aos comandos de divisão.

Se você deseja um layout de grade, tente algo como isto:

screen script1.sh # Open first screen and launch first script
split -v          # Make second split
focus             # Switch to second split
screen script2.sh # Open second screen and launch second script
split             # Make third split
focus             # Switch to third split
screen script3.sh # Open third screen and launch third script
focus             # Cycle back to first split
split             # Split first split horizontally
focus             # Switch to new split
screen script4.sh # Open fourth screen and launch fourth script
Ben Williams
fonte
Muito obrigado, isso funcionou como um encanto. A única outra questão é que, depois de iniciar meus vários scripts, posso fazer com que o Cd para retornar ao meu terminal, mas quando eu faço a "tela -r", ele volta à minha última guia aberta e não consigo mais ver a saída das outras guias. "screen -ls" mostra apenas uma instância, mas posso ver que todos os meus scripts ainda estão em execução na lista de processos com "ps". Então, como posso desanexar minha tela com várias guias e voltar a ela com o mesmo estado?
precisa saber é o seguinte
Encontrei uma pergunta de superusuário sobre isso: superuser.com/questions/69816/… Parece um problema espinhoso. Ocorre-me que você também poderá criar uma macro que restabeleça suas divisões.
Ben Williams
A dica do fórum de superusuário não parece funcionar para mim porque a sessão aninhada não parece usar minha configuração quando inicio com a opção -c.
jmbouffard
Também tentei sua outra idéia para restabelecer minhas divisões com um arquivo de configuração como o mostrado na sua resposta. Mas acho que preciso usar "screen -r -c macro", mas parece que não posso combinar a opção -r com -c porque não leva meus comandos em consideração. "-c" sozinho restabelece minhas divisões com telas vazias, "-r -c macro" faz exatamente a mesma coisa que "-r" sozinho e não cria nenhuma divisão.
jmbouffard