Como manter uma aplicação rodando em segundo plano com PM2 ou systemd imprimir

  • 0

Como manter uma aplicação rodando em segundo plano com PM2 ou systemd

Oi! Aqui é a Sensei da GeHost 🥋 Se você já rodou uma aplicação (Node.js, Python, etc.) direto no terminal e ela "morreu" assim que você fechou a janela do SSH ou reiniciou o servidor, calma — isso é super comum, e é exatamente pra isso que existem ferramentas como o PM2 e o systemd. Elas mantêm sua aplicação rodando "em segundo plano" (background), reiniciando ela sozinha se travar ou se o servidor reiniciar. Vamos entender juntos, com calma.

Por que a aplicação "morre" sozinha?

Quando você roda algo como node app.js ou python app.py direto no terminal, esse processo fica "preso" àquela sessão. Se você fecha o terminal, perde a conexão SSH ou o servidor reinicia, o processo some junto. Um gerenciador de processos resolve isso: ele roda sua aplicação de forma independente da sua sessão, monitora se ela caiu e sobe de novo automaticamente.

💡 Dica da Sensei: nunca deixe uma aplicação de produção rodando só com node app.js "pelado" no terminal — use sempre um gerenciador de processos. É a diferença entre um site que cai à noite e ninguém percebe, e um que se recupera sozinho.

Primeiro: qual é o seu tipo de plano?

Isso muda o caminho que você vai seguir:

  • Hospedagem compartilhada (cPanel) — é o formato dos planos GeHost (Econômico, Básico, Médio e Plus). Nela você não configura PM2 ou systemd manualmente: o próprio cPanel já tem uma ferramenta chamada "Setup Node.js App" que cuida de manter sua aplicação Node.js rodando em segundo plano pra você, sem precisar de acesso avançado ao servidor. Veja a seção específica mais abaixo.
  • VPS ou servidor dedicado com acesso SSH root — aí sim você mesmo instala e configura o PM2 ou o systemd na mão, como explicamos no passo a passo abaixo.

Não tem certeza de qual é o seu caso? Dá uma olhadinha no painel.gehost.com.br ou fala com a gente pelo suporte — a gente confirma certinho.

Se você está na hospedagem cPanel: use o "Setup Node.js App"

Boa notícia: nesse caso a GeHost já resolve o "background" pra você. O cPanel usa um sistema (Passenger) que gerencia o processo da sua aplicação automaticamente — ele reinicia sozinho se cair, sem você precisar mexer em PM2 ou systemd. Basta:

  1. Entrar no cPanel e procurar por "Setup Node.js App" (ou "Configurar Aplicativo Node.js").
  2. Criar a aplicação apontando pra pasta do seu projeto e escolhendo a versão do Node.js.
  3. Clicar em "Iniciar" (Start/Run) — pronto, ela já fica rodando em segundo plano sozinha.

Se sua aplicação for em outra linguagem (Python, por exemplo) ou tiver uma necessidade mais específica, chama a gente no suporte que a equipe te orienta certinho pro seu caso.

Se você tem VPS/servidor com SSH: usando o PM2

O PM2 é um gerenciador de processos bem popular pra aplicações Node.js — simples de instalar e de usar no dia a dia.

  1. Instale o PM2 globalmente (se ainda não tiver):
    npm install -g pm2
  2. Inicie sua aplicação com um nome fácil de identificar:
    pm2 start app.js --name "minha-aplicacao"
  3. Confira se está rodando:
    pm2 status
  4. Salve a lista de processos, pra ela "lembrar" o que precisa subir:
    pm2 save
  5. Configure o PM2 pra iniciar sozinho quando o servidor reiniciar:
    pm2 startup
    (esse comando vai te mostrar uma linha extra pra copiar e colar — é normal, é assim que ele se registra no sistema).

Pra ver os logs da aplicação a qualquer momento: pm2 logs minha-aplicacao. Pra reiniciar: pm2 restart minha-aplicacao.

Se você tem VPS/servidor com SSH: usando o systemd

O systemd é o gerenciador de serviços que já vem nativo na maioria dos servidores Linux — é uma opção mais "robusta" e funciona pra qualquer linguagem (Node, Python, Go, etc.), não só Node.js.

  1. Crie um arquivo de serviço, por exemplo /etc/systemd/system/minha-aplicacao.service, com um conteúdo parecido com este:
    [Unit]
    Description=Minha Aplicacao
    After=network.target
    
    [Service]
    ExecStart=/usr/bin/node /caminho/do/projeto/app.js
    Restart=always
    User=seu_usuario
    WorkingDirectory=/caminho/do/projeto
    
    [Install]
    WantedBy=multi-user.target
  2. Recarregue o systemd pra ele reconhecer o novo serviço:
    systemctl daemon-reload
  3. Ative o serviço pra iniciar automaticamente com o servidor:
    systemctl enable minha-aplicacao
  4. Inicie o serviço:
    systemctl start minha-aplicacao
  5. Confira o status quando quiser:
    systemctl status minha-aplicacao

PM2 ou systemd — qual escolher?

  • PM2: mais simples de começar, ótimo pra Node.js, tem comandos amigáveis (pm2 logs, pm2 monit) e é a escolha mais comum entre devs que estão começando.
  • systemd: já vem no servidor, funciona com qualquer linguagem e se integra bem com o restante do sistema operacional — mais indicado se você já tem familiaridade com Linux.
💡 Dica da Sensei: seja qual for a ferramenta, sempre teste um reinício do servidor (ou peça pra alguém de confiança testar) pra confirmar que a aplicação realmente volta sozinha. Melhor descobrir isso num teste tranquilo do que numa madrugada de sábado!

Precisa de uma força?

Se você travou em algum passo, não tem certeza se seu plano permite acesso SSH, ou quer uma mãozinha pra configurar isso do jeitinho certo, chama a gente pelo painel.gehost.com.br — a equipe da GeHost tá aqui pra te ajudar. 💙


Esta resposta lhe foi útil?

« Retornar