Introdução ao `screen`
No mundo da administração de sistemas e desenvolvimento, muitas vezes nos encontramos trabalhando em servidores remotos via SSH. Uma conexão instável ou um simples descuido ao fechar o terminal podem resultar na perda de trabalho árduo e na interrupção de processos importantes. É aqui que ferramentas como o screen entram em jogo, oferecendo uma solução robusta para gerenciar sessões de terminal de forma persistente e flexível.
O screen, ou GNU Screen, é um multiplexador de terminal que permite que você execute múltiplos terminais virtuais dentro de uma única conexão SSH ou janela de terminal. Mais importante ainda, ele permite que você desanexe (detach) dessas sessões e as anexe (attach) novamente mais tarde, mesmo de um local diferente ou após uma desconexão. Isso significa que seus programas continuarão rodando em segundo plano, independentemente do estado da sua conexão.
Instalação do `screen`
Na maioria das distribuições Linux modernas, o screen já vem pré-instalado. No entanto, se não estiver disponível, a instalação é simples:
- Debian/Ubuntu:
sudo apt update && sudo apt install screen - Fedora/CentOS/RHEL:
sudo dnf install screenousudo yum install screen - Arch Linux:
sudo pacman -S screen
Após a instalação, você pode iniciar uma nova sessão digitando simplesmente screen no seu terminal.
Criando e Gerenciando Sessões
Para iniciar uma nova sessão do screen, o comando básico é:
screenIsso criará uma nova sessão com um nome genérico. Para maior clareza, é altamente recomendável nomear suas sessões:
screen -S nome_da_sessaoPor exemplo, screen -S meu_projeto_web inicia uma sessão nomeada para o seu projeto web.
Uma vez dentro de uma sessão do screen, você pode executar comandos normalmente. Para desanexar da sessão sem encerrá-la, pressione a combinação de teclas Ctrl+A seguida pela letra D (detach).
Para listar todas as sessões ativas:
screen -lsA saída mostrará algo como:
There are screens on: 12345.meu_projeto_web (Detached) 67890.outra_sessao (Detached) 2 Sockets in /run/screen/S-seu_usuario.Para reanexar a uma sessão, use o ID do processo ou o nome da sessão:
screen -r 12345ou
screen -r meu_projeto_webSe você tiver várias sessões e quiser reanexar a uma que está em execução, mas não há outra sessão anexada, pode usar:
screen -rO screen então listará as sessões disponíveis e você poderá escolher qual reanexar.
Janelas Múltiplas Dentro de uma Sessão
Uma das funcionalidades mais poderosas do screen é a capacidade de criar múltiplas janelas (terminais virtuais) dentro de uma única sessão. Isso é ideal para trabalhar em diferentes tarefas simultaneamente sem precisar de múltiplas conexões SSH.
Comandos para gerenciar janelas:
- Criar uma nova janela:
Ctrl+Aseguido deC(create). - Navegar entre janelas:
Ctrl+Aseguido deN(next) para a próxima janela,Ctrl+Aseguido deP(previous) para a janela anterior, ouCtrl+Aseguido do número da janela (ex:Ctrl+A 0para a primeira janela). - Listar todas as janelas na sessão atual:
Ctrl+Aseguido deFoto de Tima Miroshnichenko no Pexels.