Como usar o PM2 para manter sua aplicação Node.js sempre ativa
Oi! Aqui é a Sensei da GeHost 🥋 Se você tem uma aplicação Node.js rodando no seu servidor, já deve ter passado por essa situação: fecha o terminal (ou a conexão SSH cai) e... a aplicação para. Ninguém merece ficar com o terminal aberto 24 horas por dia só para o site continuar no ar, né?
É exatamente para resolver isso que existe o PM2: um "gerente de processos" para aplicações Node.js. Ele mantém sua aplicação rodando em segundo plano, reinicia sozinho se ela travar, e ainda organiza os logs para você. Vamos aprender juntos, passo a passo.
O que é o PM2, na prática?
Pense no PM2 como um "zelador" da sua aplicação: ele fica de olho, e se o processo Node.js cair por qualquer motivo, ele reinicia automaticamente. Com ele você ganha:
- Aplicação rodando em segundo plano (sem precisar deixar o terminal aberto);
- Reinício automático em caso de falha ou queda do processo;
- Reinício automático quando o servidor é reiniciado (com a configuração certa);
- Logs organizados, fáceis de consultar;
- Comandos simples para parar, reiniciar ou monitorar a aplicação.
Este guia é para quem já tem acesso a um terminal (SSH) no ambiente onde a aplicação Node.js roda. Se você não sabe se o seu plano possui esse tipo de acesso, dá uma olhada no painel.gehost.com.br ou fale com o suporte para confirmar direitinho.
Passo 1 — Instalar o PM2
Com o Node.js já instalado no seu ambiente, o primeiro passo é instalar o PM2 globalmente, via terminal:
npm install -g pm2
Pronto! Agora o comando pm2 já está disponível para você usar de qualquer pasta.
Passo 2 — Iniciar sua aplicação com o PM2
Em vez de rodar sua aplicação com node app.js (que trava o terminal e morre quando você sai), use o PM2:
- Acesse, pelo terminal, a pasta onde está o arquivo principal da sua aplicação (por exemplo,
app.jsouindex.js); - Rode o comando:
pm2 start app.js --name "minha-aplicacao"
O parâmetro --name é opcional, mas super recomendado: ele dá um apelido para a sua aplicação, facilitando quando você tiver mais de um processo rodando.
Passo 3 — Conferir se está tudo funcionando
Para ver a lista de aplicações que o PM2 está cuidando, use:
pm2 list
ou
pm2 status
Você vai ver uma tabelinha com o nome da aplicação, status (online, stopped etc.), uso de memória e quantas vezes ela já reiniciou.
Passo 4 — Consultar os logs
Se algo não estiver funcionando como esperado, os logs são seus melhores amigos:
pm2 logs minha-aplicacao
Esse comando mostra em tempo real tudo o que sua aplicação está imprimindo — inclusive erros. Para sair da visualização de logs, use Ctrl + C (isso não para a aplicação, só fecha a tela de acompanhamento).
Passo 5 — Fazer a aplicação voltar sozinha se o servidor reiniciar
Até aqui, se o servidor for reiniciado, o PM2 (e sua aplicação) não voltam automaticamente. Para resolver isso, faça em duas etapas:
- Gere o script de inicialização automática:
pm2 startup
O próprio PM2 vai te mostrar um comando para copiar e colar (geralmente precisa rodar com permissões de administrador). Copie e execute exatamente como ele indicar. - Salve a lista atual de aplicações que devem subir junto:
pm2 save
Dica da Sensei: sempre que você iniciar, parar ou remover uma aplicação do PM2, rode pm2 save de novo. Assim a "foto" salva fica sempre atualizada com o que deve subir automaticamente.
Comandos do dia a dia que você vai usar bastante
- Reiniciar:
pm2 restart minha-aplicacao - Parar:
pm2 stop minha-aplicacao - Remover da lista do PM2:
pm2 delete minha-aplicacao - Monitorar uso de CPU/memória em tempo real:
pm2 monit - Ver detalhes de uma aplicação específica:
pm2 show minha-aplicacao
Dicas extras da Sensei
Deu algum erro estranho de "porta em uso" ou "aplicação não sobe"? Antes de mais nada, confira com pm2 logs — na maioria das vezes a própria aplicação já te conta o motivo.
Evite rodar node app.js "por fora" enquanto o PM2 também está gerenciando a mesma aplicação — isso pode gerar dois processos brigando pela mesma porta.
Se sua aplicação depende de variáveis de ambiente (arquivo .env, por exemplo), confirme que elas estão configuradas corretamente no ambiente antes de iniciar pelo PM2 — ele não cria essas variáveis sozinho.
Precisou de uma força extra?
Se em algum passo a coisa não fluir, não sofre sozinho: entre no painel.gehost.com.br para verificar as informações do seu plano ou abra um chamado com o nosso suporte. A gente lê como se estivesse do seu lado, olhando a mesma tela. 💛