Trabalhar com terminais remotos ou executar processos de longa duração pode ser desafiador, especialmente quando há risco de desconexões ou quando se precisa gerenciar múltiplas tarefas simultaneamente. É aí que entra o GNU Screen, uma ferramenta poderosa que permite criar sessões persistentes de terminal.
Com o screen
, você pode iniciar uma sessão de terminal que continuará rodando mesmo se fechar a janela ou perder a conexão. Isso é especialmente útil em servidores, onde é comum rodar processos demorados, como atualizações de sistemas, downloads, scripts automatizados e monitoramento de logs.
A seguir, veja como instalar, usar e dominar o screen
para tornar seu fluxo de trabalho mais eficiente e resiliente.
🛠 Instalação do screen
O screen
está disponível na maioria das distribuições Linux. Para instalá-lo, use o gerenciador de pacotes correspondente ao seu sistema:
Ubuntu / Debian
sudo apt install screen
Arch Linux
sudo pacman -S screen
CentOS / RHEL
sudo yum install screen
Após a instalação, o screen
já pode ser utilizado diretamente no terminal.
🎯 Criando e Gerenciando Sessões screen
1️⃣ Criar uma nova sessão
Para iniciar uma nova sessão do screen
, basta executar:
screen
Isso abrirá um novo terminal dentro do screen
, onde você pode executar comandos normalmente.
Caso precise nomear a sessão, facilitando sua identificação posteriormente:
screen -S minha_sessao
2️⃣ Desanexar uma sessão sem fechá-la
Se precisar voltar ao terminal principal sem encerrar o que está rodando no screen
, pressione:
Ctrl + A, depois D
Isso desanexará a sessão, permitindo que ela continue rodando em segundo plano.
3️⃣ Listar sessões ativas
Se houver várias sessões em execução, você pode listar todas elas com:
screen -ls
O terminal exibirá algo como:
There are screens on:
12345.pts-0.servidor (Detached)
67890.pts-1.servidor (Attached)
Cada sessão possui um ID único, usado para reconectá-la.
4️⃣ Reanexar uma sessão
Caso queira retornar a uma sessão desanexada:
screen -r <ID_da_sessão>
Por exemplo, para reconectar-se à sessão 12345.pts-0.servidor
:
screen -r 12345
Se houver apenas uma sessão ativa, basta rodar:
screen -r
5️⃣ Encerrar uma sessão screen
Para fechar completamente uma sessão, você pode:
- Digitar
exit
dentro da sessão e pressionarEnter
:exit
- Pressionar
Ctrl + D
para sair da sessão. - Forçar o fechamento de uma sessão específica pelo ID:
screen -S minha_sessao -X quit
🔥 Comandos Essenciais do screen
Enquanto estiver dentro de uma sessão screen
, utilize os atalhos abaixo para gerenciar seu ambiente com mais eficiência:
Comando | Descrição |
---|---|
Ctrl + A, D | Desanexa a sessão (envia para segundo plano) |
Ctrl + A, C | Cria uma nova janela dentro da sessão |
Ctrl + A, N | Alterna para a próxima janela |
Ctrl + A, P | Alterna para a janela anterior |
Ctrl + A, W | Lista todas as janelas abertas |
Ctrl + A, [ | Entra no modo de cópia (permite copiar texto) |
Ctrl + A, Shift + A | Renomeia a janela atual |
Ctrl + A, Shift + “ | Volta ao hub de janelas |
Ctrl + A, K | Remove a janela da listagem |
Ctrl + A, :number | Altera a posição dela na listagem |
Ctrl + A, C | Cria uma nova janela dentro do hub |
Ctrl + A, K | Fecha a janela atual |
Ctrl + A, [ | Ativa o modo de cópia para copiar texto |
Ctrl + A, ? | Exibe a ajuda do screen |
Esses atalhos ajudam a gerenciar múltiplas janelas e tornam o uso do screen
mais eficiente.
🚀 Executando Comandos Diretamente no screen
O screen
também permite executar comandos automaticamente dentro de uma sessão, sem necessidade de interagir diretamente com ela.
Por exemplo, para criar uma sessão chamada meu_script
, rodando um script em segundo plano:
screen -S meu_script -dm bash -c './script.sh'
Explicação:
-S
: Define o nome da sessão.-dm
: Inicia oscreen
em modo desanexado.bash -c './script.sh'
: Executa o comando dentro da sessão.
Isso é útil para rodar processos automatizados, como backups e verificações de sistema.
📌 Aplicações Práticas do screen
✅ Manter processos rodando mesmo após a desconexão
Se você está conectado a um servidor remoto e precisa garantir que um comando continue executando mesmo se sua conexão cair, rode:
screen -S meu_processo
Dentro da sessão, inicie seu processo normalmente. Depois, pressione Ctrl + A, D
para desanexar e sair. Se precisar voltar, basta usar screen -r meu_processo
.
✅ Monitoramento contínuo de logs
O screen
facilita o monitoramento de arquivos de log em tempo real. Para acompanhar um log sem que a sessão seja fechada após sair:
screen -S monitoramento
tail -f /var/log/syslog
Isso mantém o acompanhamento do log rodando em segundo plano.
✅ Compartilhamento de sessão com outro usuário
Se precisar compartilhar sua sessão com outra pessoa logada no mesmo servidor, use:
screen -x
Isso permite que ambos os usuários vejam e interajam com o mesmo terminal.
🔚 Conclusão
O screen
é uma ferramenta indispensável para administradores de sistemas, desenvolvedores e qualquer pessoa que trabalhe com servidores Linux.
Com ele, você pode:
✅ Manter processos rodando mesmo após sair do terminal.
✅ Gerenciar múltiplas janelas dentro da mesma sessão.
✅ Executar comandos automaticamente dentro de sessões.
✅ Monitorar logs e executar tarefas de longa duração de forma eficiente.