Passar para o conteúdo principal

Como manter o seu servidor rodando após fechar o SSH no Linux

Quando você acessa sua VPS Linux via SSH (usando programas como PuTTY, Termius ou o terminal do seu computador) e inicia um servidor de jogo, um bot do Discord ou um script de compilação longo, esse processo fica totalmente atrelado à sua conexão atual.

Se a sua internet oscilar, o seu computador hibernar ou você simplesmente fechar o aplicativo do terminal, o Linux entenderá que a sessão acabou e encerrará imediatamente tudo o que estava rodando naquela tela.

Para evitar que o seu servidor desligue toda vez que você for dormir, você precisa rodar a aplicação em segundo plano. A ferramenta mais clássica, leve e eficiente para resolver esse problema é o Screen.

O que é o Screen?

O Screen funciona como um "monitor virtual" dentro da sua VPS. Ele permite que você abra uma janela de terminal, inicie o seu programa, "desconecte" dessa janela deixando ela rodando invisível no fundo, e reconecte nela a qualquer momento, de qualquer outro computador ou celular.

Passo 1: Instalando o Screen

Na maioria das distribuições Linux, o Screen já vem pré-instalado. Caso o seu sistema não possua, a instalação é muito rápida. Acesse sua VPS como root (ou usando sudo) e execute o comando correspondente ao seu sistema:

Para Ubuntu e Debian:

sudo apt update -y
sudo apt install screen -y

Para CentOS, AlmaLinux e Rocky Linux:

sudo yum install screen -y

Passo 2: O básico de como usar

Usar o Screen no dia a dia se resume a quatro comandos básicos.

1. Criar uma nova tela virtual

Antes de iniciar o seu servidor de jogo ou bot, você deve criar e dar um nome para a tela virtual, para não se perder depois. Use o comando screen -S seguido do nome que desejar. Por exemplo:

screen -S servidor_minecraft

Assim que você apertar Enter, a tela dará uma leve piscada. Você já está dentro do monitor virtual. Tudo o que você iniciar aqui ficará protegido. Agora, inicie o seu servidor do jogo normalmente.

2. Desconectar da tela

Com o seu servidor rodando, você precisa sair dessa tela virtual sem desligá-la. Isso é feito através de um atalho no teclado, apertando as teclas na seguinte ordem:

  • Pressione e segure Ctrl + A.

  • Solte os botões e pressione a tecla D (de Detach).

O terminal voltará para a tela principal e exibirá a mensagem [detached from servidor_minecraft]. O seu servidor continua rodando no fundo, e você já pode fechar o terminal com segurança.

3. Listar as telas ativas

Se você voltar no dia seguinte e quiser ver quais telas estão rodando no momento, digite:

screen -ls

O sistema mostrará uma lista com todas as telas em execução (ex: 12345.servidor_minecraft).

4. Reconectar em uma tela

Para voltar a ver o que está acontecendo no seu servidor de jogo e digitar comandos nele, você precisa "puxar" a tela virtual de volta usando o comando screen -r (de Resume), seguido do nome que você criou:

screen -r servidor_minecraft

Você voltará instantaneamente para a tela do seu jogo, exatamente de onde parou.

Como fechar definitivamente uma tela

Se você não quer mais que o processo continue rodando e deseja destruir aquela tela virtual para liberar a memória RAM, basta reconectar nela (como ensinado no passo 4) e, com ela aberta, parar o seu servidor do jogo (geralmente com Ctrl + C) e digitar:

exit

A tela mostrará a mensagem [screen is terminating], confirmando que a janela virtual foi fechada com sucesso.

Respondeu à sua pergunta?