Iniciar ou reconectar uma tela GNU dividida, com cada painel executando seu próprio comando?

0

Eu quero poder lançar um comando, como ./stats.sh, para abrir uma tela (Or tmux, ou qualquer outra coisa, se necessário) que seja reconectada se já existir - ou iniciada se não existir. t, correndo dizer, 'htop' em um painel, e 'dstat' em outro.

Eu sei que você pode fazer isso usando ctrl + a | em uma sessão de tela existente, mas gostaria de poder fazer tudo isso a partir de um script que eu possa executar. Isso é possível?

Outra maneira de formular a pergunta: É possível iniciar uma tela a partir da linha de comando com vários painéis, cada painel executando seu próprio comando.

    
por Jon 12.05.2017 / 16:46

1 resposta

1

Esta pergunta foi feita em diferentes formas, mas vou referenciá-las quando apropriado.

Primeiro, para anexar à tela existente ou criar uma nova, se necessário , use isto:

screen -D -R -S namedscreen

Como alternativa, você pode testar se uma tela nomeada existe e criar uma (desanexada), se não:

screen -S name -X select . || screen -dm -S name

Para o resto do scriting que você quer, você pode cria janelas e envia comandos para uma sessão de tela existente :

screen -dm -S name -t window0
screen  -S name -X screen -t window1
screen  -S name -X screen -t window2
screen  -S name -p 0 -X stuff $'command 1\r'
screen  -S name -p 1 -X stuff $'command 2\r'
screen  -S name -p 2 -X stuff $'command 3\r'

Finalmente, veja este outro post sobre como fazer a mesma coisa com tmux .

    
por 15.05.2017 / 18:52