Por que usar o `screen`?
No mundo da administração de sistemas e desenvolvimento, é comum precisarmos manter processos rodando em servidores remotos, mesmo após desconectarmos nossa sessão SSH. Imagine que você está compilando um projeto grande, rodando um script de backup ou monitorando um serviço. Se sua conexão cair inesperadamente, o processo pode ser interrompido, forçando você a recomeçar tudo. É aí que o `screen` entra em cena como um salvador.
O GNU Screen é um multiplexador de terminal que permite criar, gerenciar e alternar entre várias sessões de terminal dentro de uma única janela de terminal. Ele é especialmente útil para:
- Manter processos rodando em segundo plano, mesmo após o logout do SSH.
- Organizar múltiplas tarefas em abas ou janelas virtuais dentro de um único terminal.
- Compartilhar sessões de terminal com outros usuários para colaboração ou demonstração.
- Recuperar sessões de trabalho perdidas devido a quedas de conexão.
Este artigo vai guiá-lo pelos conceitos básicos e comandos essenciais do `screen`, tornando-o apto a tirar o máximo proveito dessa ferramenta indispensável.
Instalando o `screen`
Na maioria das distribuições Linux modernas, o `screen` já vem pré-instalado. Caso contrário, 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 começar a usar o `screen` simplesmente digitando o comando screen no seu terminal.
Comandos Essenciais do `screen`
O `screen` opera com uma série de comandos que são iniciados por uma tecla de atalho, geralmente Ctrl+a (chamada de prefixo). A partir daí, você digita outra tecla para executar uma ação específica. Vamos explorar os comandos mais importantes:
Iniciando uma Nova Sessão
Para iniciar uma nova sessão do `screen`, basta digitar:
screenVocê verá uma tela de introdução. Pressione `Enter` ou `Espaço` para prosseguir. Agora você está dentro de uma nova sessão do `screen`. Qualquer comando que você executar aqui continuará rodando mesmo se você se desconectar.
Desconectando (Detaching) de uma Sessão
Para sair de uma sessão do `screen` sem interromper os processos nela em execução, use o atalho:
Ctrl+a seguido de d (de detach).
Você voltará para o seu terminal original, e o `screen` exibirá uma mensagem como [detached from PID.tty.host]. Sua sessão continua ativa em segundo plano.
Listando e Reconectando (Attaching) a Sessões
Se você tiver várias sessões do `screen` rodando, pode listar todas elas com:
screen -lsA saída mostrará algo como:
There are screens on: PID.tty.host (Detached) PID.tty.host (Detached)Para se reconectar a uma sessão específica, use o comando screen -r seguido do PID ou do nome da sessão:
screen -r PIDou
screen -r nome_da_sessaoSe houver apenas uma sessão, você pode simplesmente digitar screen -r e ele se conectará a ela.
Criando Sessões com Nomes
Para facilitar a identificação, é altamente recomendável nomear suas sessões:
screen -S nome_da_sua_sessaoIsso torna muito mais fácil gerenciar múltiplas sessões. Ao listar com screen -ls, você verá os nomes atribuídos.
Matando uma Sessão
Se você deseja encerrar completamente uma sessão do `screen` e todos os processos que estão rodando nela, primeiro conecte-se à sessão (screen -r nome_da_sessao) e, em seguida, digite exit no prompt do shell dentro do `screen`, ou use o atalho:
Ctrl+a seguido de k (de kill).
O `screen` pedirá confirmação. Se você confirmar, a sessão será encerrada.
Gerenciando Múltiplas Janelas no `screen`
Além de manter processos rodando, o `screen` permite criar múltiplas
Foto de Rafael Minguet Delgado no Pexels.