Como usar o PM2 para manter sua aplicação Node.js sempre ativa
Oi! Sensei aqui de novo 👋. Se você tem uma aplicação Node.js rodando no seu servidor, já deve ter sentido aquele friozinho na barriga: você fecha o terminal, ou o servidor reinicia, e... a aplicação para. Ninguém quer isso, né? É exatamente pra resolver esse problema que existe o PM2.
Neste guia vou te explicar, com calma e passo a passo, o que é o PM2 e como usá-lo para manter seu app Node.js rodando 24 horas por dia, se recuperando sozinho até de eventuais quedas.
O que é o PM2?
O PM2 é um gerenciador de processos para aplicações Node.js. Pense nele como um "zelador" que fica de olho na sua aplicação: se ela travar ou fechar por algum motivo, o PM2 percebe e reinicia automaticamente. Ele também deixa sua aplicação rodando em segundo plano, então você pode fechar o terminal sem se preocupar.
💡 Dica da Sensei: o PM2 é indicado para quem já tem acesso via terminal (SSH) ao servidor onde a aplicação Node.js está hospedada. Se você não sabe se o seu plano permite esse tipo de acesso, é só confirmar com o nosso suporte ou dar uma olhada nos detalhes do seu plano no painel.gehost.com.br.Passo 1: Verifique se o Node.js está instalado
Antes de instalar o PM2, você precisa ter o Node.js instalado no ambiente onde vai rodar sua aplicação. Para conferir, no terminal, digite:
node -vSe aparecer um número de versão (por exemplo, algo como
v18.x.x), você está pronto para seguir em frente. Se não aparecer nada ou der erro, o Node.js ainda não está instalado nesse ambiente — nesse caso, fale com o suporte da GeHost para te orientar sobre a melhor forma de instalar o Node.js no seu ambiente específico.Passo 2: Instale o PM2
Com o Node.js confirmado, instale o PM2 globalmente com o gerenciador de pacotes npm (que já vem junto com o Node.js):
npm install -g pm2Pronto! Isso pode levar alguns segundos. Ao final, você já pode usar o comando
pm2de qualquer lugar do terminal.Passo 3: Inicie sua aplicação com o PM2
Agora vem a parte boa. Em vez de iniciar sua aplicação do jeito tradicional (com
node app.js, por exemplo), você vai usar o PM2 para isso:
- Acesse, pelo terminal, a pasta onde está o arquivo principal da sua aplicação (geralmente
app.js,server.jsouindex.js).- Rode o comando abaixo, trocando
app.jspelo nome do seu arquivo principal:pm2 start app.js --name "meu-site"O
--nameé opcional, mas eu recomendo bastante: assim fica muito mais fácil identificar sua aplicação depois, principalmente se você tiver mais de um app Node.js rodando ao mesmo tempo.Passo 4: Confira se está tudo rodando
Para ver a lista de aplicações que o PM2 está cuidando, use:
pm2 listVocê vai ver uma tabela com o nome da sua aplicação, o status (deve aparecer online), quanto tempo está rodando, uso de memória, entre outras informações.
Comandos essenciais do dia a dia
Aqui vai uma "cola" com os comandos que você mais vai usar no seu dia a dia com o PM2:
pm2 restart meu-site— reinicia a aplicação (útil depois de atualizar o código).pm2 stop meu-site— para a aplicação sem removê-la da lista do PM2.pm2 delete meu-site— remove a aplicação da lista do PM2 (ela para de rodar).pm2 logs meu-site— mostra os logs (mensagens e erros) em tempo real. Ótimo para investigar problemas!pm2 monit— abre um painel simples no terminal para acompanhar CPU e memória da aplicação ao vivo.Passo 5: Faça o PM2 iniciar sozinho quando o servidor reiniciar
De nada adianta sua aplicação ficar de pé enquanto o servidor está ligado, se ela não voltar sozinha depois de uma reinicialização, certo? Para resolver isso, o PM2 tem um recurso chamado startup:
- Rode o comando:
pm2 startupEsse comando vai te devolver uma linha de comando pronta (geralmente começando com
sudo). Copie exatamente essa linha que apareceu no seu terminal e rode ela em seguida — é ela quem configura o PM2 para iniciar junto com o servidor.
- Depois, salve a lista atual de aplicações que devem subir automaticamente:
pm2 save💡 Dica da Sensei: sempre que adicionar uma aplicação nova ao PM2, ou mudar alguma configuração importante, rodepm2 savede novo para garantir que essa "foto" mais recente fique guardada.Bônus: reinício automático em caso de erro
A boa notícia é que isso já vem pronto por padrão! Se sua aplicação travar ou fechar inesperadamente por causa de um erro no código, o PM2 já tenta reiniciá-la automaticamente. Você pode acompanhar quantas vezes isso aconteceu na coluna restarts do comando
pm2 list— se esse número estiver crescendo muito rápido, é sinal de que vale a pena investigar os logs compm2 logspara entender o que está acontecendo.Resumo rápido
E é isso! Com esses passos, sua aplicação Node.js fica muito mais estável e profissional:
- ✅ Roda em segundo plano, mesmo com o terminal fechado
- ✅ Reinicia sozinha se travar
- ✅ Volta a funcionar automaticamente depois que o servidor reiniciar
- ✅ Logs organizados e fáceis de consultar
Qualquer dúvida durante o processo, não hesite em chamar o nosso suporte — estamos aqui pra ajudar você a manter sua aplicação sempre no ar. 🙂