Voltar ao Diminua Blog

Artigo

Desvendando o `screen` no Linux: Sessões de Terminal Persistentes e Organizadas

Mantenha seus trabalhos rodando em segundo plano e organize múltiplas sessões de terminal com este utilitário poderoso e leve.

Desvendando o `screen` no Linux: Sessões de Terminal Persistentes e Organizadas

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 screen ou sudo 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:

screen

Você 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 -ls

A 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 PID

ou

screen -r nome_da_sessao

Se 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_sessao

Isso 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.