PM2 na VPS: Como Gerenciar Processos Node.js em Produção

Tempo de leitura: 3 minutos

Rodar uma aplicação Node.js com node app.js funciona bem pra testar, mas em produção ela cai assim que você fecha o terminal ou o processo trava. O PM2 resolve isso: mantém a aplicação rodando em segundo plano, reinicia sozinho se ela cair e ainda sobe de novo depois de um reboot do servidor.

Isso funciona em qualquer VPS Linux, incluindo o Cloud VPS Brasil da Rubfy, onde sua aplicação Node.js já roda com Intel Xeon Gold e SSD NVMe por trás.

O que é o PM2

PM2 é um gerenciador de processos para aplicações Node.js. Ele roda a aplicação como um serviço em segundo plano, monitora se ela continua ativa, reinicia automaticamente em caso de falha e organiza os logs de saída, tudo sem precisar escrever um script de systemd na mão.

Instalando o PM2

O PM2 é instalado via npm, então é preciso ter o Node.js instalado antes. Com o Node já na VPS, instale o PM2 globalmente:

sudo npm install -g pm2

Iniciando uma aplicação com o PM2

Dentro da pasta do projeto, em vez de rodar node app.js, use:

pm2 start app.js --name "minha-aplicacao"

O parâmetro --name dá um nome fácil de identificar pra aplicação, útil quando o servidor roda mais de um projeto Node.js ao mesmo tempo.

Comandos essenciais do dia a dia

  • pm2 list: mostra todas as aplicações rodando, com status, uso de CPU e memória.
  • pm2 logs: acompanha o log de todas as aplicações em tempo real.
  • pm2 logs minha-aplicacao: mostra o log só de uma aplicação específica.
  • pm2 restart minha-aplicacao: reinicia a aplicação (útil depois de atualizar o código).
  • pm2 stop minha-aplicacao: para a aplicação sem removê-la da lista.
  • pm2 delete minha-aplicacao: remove a aplicação do gerenciamento do PM2.

Fazendo a aplicação subir sozinha após um reboot

Por padrão, se o servidor reiniciar, o PM2 (e as aplicações que ele gerencia) não voltam sozinhos. Pra resolver isso de vez, dois comandos:

pm2 save
pm2 startup

O pm2 save salva a lista atual de aplicações rodando. Já o pm2 startup gera um comando específico pra sua distribuição Linux (baseado no systemd), copie e execute o comando que ele mostrar na tela para registrar o PM2 como serviço de inicialização.

Monitorando o uso de recursos

O comando pm2 monit abre um painel no próprio terminal mostrando o uso de CPU e memória de cada aplicação em tempo real, sem precisar de ferramenta externa. Combina bem com o htop pra ter a visão geral do servidor inteiro ao mesmo tempo.

Rodando em modo cluster (múltiplos núcleos)

Node.js roda por padrão num único núcleo do processador. O PM2 permite aproveitar todos os núcleos disponíveis da VPS com o modo cluster:

pm2 start app.js -i max --name "minha-aplicacao"

O parâmetro -i max instrui o PM2 a subir uma instância da aplicação por núcleo de CPU disponível, distribuindo a carga entre elas automaticamente.

Conclusão

O PM2 é o jeito mais simples de colocar uma aplicação Node.js pra rodar de verdade em produção: sempre ativa, reiniciando sozinha em caso de falha, sobrevivendo a um reboot do servidor e com log e monitoramento organizados num só lugar.

Coloque sua aplicação Node.js pra rodar de verdade

Uma aplicação sempre ativa merece um servidor à altura. O Cloud VPS Brasil da Rubfy tem Intel Xeon Gold, SSD NVMe, tráfego ilimitado e preço fixo em reais, com suporte humano de verdade via WhatsApp e ticket, sem letra miúda.