Gerenciar Múltiplos Terminais com Screen

LinuxBeginner
Pratique Agora

Introdução

O comando screen é extremamente útil para executar múltiplos scripts simultaneamente em segundo plano. Isso permite que você inicie tarefas de longa duração sem manter um terminal aberto para cada uma delas. Abaixo, vamos detalhar como usar o screen para executar scripts em segundo plano e gerenciar essas sessões.

Exemplo de uso do comando screen

Executando Scripts em Segundo Plano

Você tem três scripts que executam diferentes tarefas em ~/project.

Abra o terminal ( ① ou ② na figura ) no ambiente e insira o seguinte comando:

ls ~/project
listagem de arquivos do projeto no terminal

Se você deseja executar esses 3 scripts ao mesmo tempo, pode fazer assim:

três scripts executando simultaneamente

Agora, usaremos o screen para executar esses scripts simultaneamente em sessões desanexadas.

Para executar esses scripts em segundo plano usando screen, usaremos a opção -dmS:

  • -d inicia uma sessão e imediatamente se desanexa dela.
  • -m força o screen a criar uma nova sessão.
  • -S nos permite nomear a sessão para fácil referência.

Iniciando os Scripts

Abra um terminal e navegue até o diretório contendo seus scripts. Em seguida, inicie cada script em uma sessão screen separada usando os seguintes comandos:

screen -dmS task1 ./script1.sh
screen -dmS task2 ./script2.sh
screen -dmS task3 ./script3.sh

Gerenciando Sessões

Após iniciar os scripts, você pode gerenciar essas sessões screen com vários comandos.

Listar todas as sessões

screen -ls
saída da lista de sessões screen

Este comando mostrará todas as suas sessões screen em execução.

Reanexar a uma sessão

screen -r session_name

Se você deseja verificar a saída ou interagir com um script específico, use este comando para reanexar à sua sessão. Substitua session_name pelo nome que você atribuiu ao iniciar o script (por exemplo, task1, task2 ou task3).

Desanexar de uma sessão

Depois de terminar de verificar uma sessão, você pode desanexar dela e deixá-la continuar executando em segundo plano pressionando Ctrl-a seguido por d.

Terminar uma sessão

Para terminar uma sessão, reanexe-a usando screen -r session_name e, em seguida, digite exit ou pressione Ctrl-d.

✨ Verificar Solução e Praticar

Resumo

Usar o screen para gerenciar múltiplas tarefas em segundo plano pode otimizar significativamente seu fluxo de trabalho, especialmente ao lidar com processos de longa duração ou em segundo plano. Ao executar scripts em sessões screen desanexadas, você mantém um espaço de trabalho limpo e garante que seus processos continuem ininterruptos, mesmo que você se desconecte do servidor ou feche seu terminal.

Experimente o screen para descobrir como ele pode se encaixar melhor em seu fluxo de trabalho e aumentar sua produtividade!