Skip to main content

Pm2 | Node.js

  • Pm2 | Node.js

O que é o PM2

O PM2 é um gerenciador de processos para aplicações Node.js (e também outros runtimes). Ele mantém sua aplicação rodando em segundo plano, reinicia automaticamente em caso de falhas e facilita o gerenciamento em produção.

Principais benefícios:

  • Restart automático em caso de crash
  • Gerenciamento de múltiplos processos
  • Logs centralizados
  • Inicialização automática no boot
  • Monitoramento básico

Pré-requisitos

Antes de instalar o PM2, você precisa ter:

  • Linux
  • Node.js (recomendado versão LTS)
  • npm (normalmente vem com o Node)

Verifique se já estão instalados:

node -v
npm -v

Instalação do PM2

Instalar globalmente (recomendado)

npm install -g pm2

Verificar instalação:

pm2 -v

Iniciando uma aplicação com PM2

Aplicação Node.js simples

pm2 start app.js

Definir nome do processo

pm2 start app.js --name minha-api

Executar com variáveis de ambiente

pm2 start app.js --name minha-api --env production

Comandos básicos do PM2

Listar processos

pm2 list

Ver detalhes de um processo

pm2 show minha-api

Ver logs

pm2 logs

Logs de um processo específico:

pm2 logs minha-api

Gerenciamento de processos

Parar um processo

pm2 stop minha-api

Reiniciar um processo

pm2 restart minha-api

Recarregar sem downtime (reload)

pm2 reload minha-api

Remover processo do PM2

pm2 delete minha-api

Executar no boot do sistema

Para que o PM2 inicie automaticamente após reiniciar o servidor:

pm2 startup

O comando vai mostrar outro comando. Copie e execute exatamente como aparece.

Depois disso, salve os processos atuais:

pm2 save

Usando arquivo de configuração (ecosystem.config.js)

Crie um arquivo:

pm2 init

Exemplo básico:

module.exports = {
apps: [
{
name: "minha-api",
script: "app.js",
instances: 2,
exec_mode: "cluster",
env: {
NODE_ENV: "development"
},
env_production: {
NODE_ENV: "production"
}
}
]
}

Iniciar com o arquivo:

pm2 start ecosystem.config.js --env production

Monitoramento

Modo interativo:

pm2 monit

Mostra uso de CPU, memória e logs em tempo real.


Atualizar o PM2

npm install -g pm2@latest

Desinstalar o PM2

Parar e remover todos os processos

pm2 stop all
pm2 delete all

Remover inicialização no boot

pm2 unstartup

Desinstalar o PM2

npm uninstall -g pm2

Verifique se foi removido:

pm2 -v

Limpar arquivos e logs (opcional)

rm -rf ~/.pm2

⚠️ Isso remove logs e histórico do PM2.


Dicas finais

  • Use cluster mode para aproveitar múltiplos núcleos
  • Sempre execute pm2 save após alterações
  • Evite rodar PM2 como root (use usuário normal)