Como posso iniciar várias sessões de tela automaticamente?

17

Estou tentando criar um comando que lance screen , crie quatro sessões com nomes diferentes e execute quatro comandos diferentes.

Eu sei como fazer isso manualmente:

1. screen
2. ./command1 args
3. CTRL-A :sessionname Session 1
4. CTRL-A C
5. (GOTO 2)

Posso fazer isso com um script bash ou algo assim? Como eu faria isso?

    
por hughes 04.02.2012 / 22:55

3 respostas

15

screen -dmS "$SESSION_NAME" "$COMMAND" "$ARGUMENTS" gerará uma tela executando $COMMAND em segundo plano.

Você pode ver as sessões ativas com screen -ls e reconectar com screen -r "$SESSION_NAME" .

As sessões inativas podem ser eliminadas com screen -wipe .

    
por 04.02.2012 / 23:16
24

Para iniciar várias sessões automaticamente, configure um arquivo .screenrc , um arquivo de configuração para a tela. Nele, você pode criar sessões, iniciar programas, alterar o diretório de trabalho, etc. Eu o uso para inicializar minha sessão de tela.

Exemplo simples para um arquivo .screenrc:

# don't display the copyright page
startup_message off

# increase scrollback buffer size
defscrollback 10000

# create windows
screen -t TODO vim TODO.txt
chdir src
screen -t coding vim main.c
screen -t run 

Os comandos screen acima criam uma sessão de tela. -t define o título da sessão; o resto da linha é o comando para executar e seus parâmetros.

Assim, a primeira e segunda linha screen iniciam uma sessão e iniciam vim dentro. O terceiro apenas inicia uma sessão e deixa você em um prompt. chdir altera o diretório de trabalho para todas as sessões subsequentes.

Se você quiser ter vários arquivos .screenrc , apenas nomeie-os como quiser e selecione um com screen -c myscreenrc .

    
por 05.02.2012 / 03:18
5

Você pode usar as opções d, m, S juntas:

screen -Sdm s1
screen -Sdm s2
screen -Sdm s3

S: Para criar uma tela

d: desanexar de uma tela

m: Para impor a criação da tela, independentemente de a tela ser chamada de outra tela ou não.

    
por 11.03.2015 / 16:42