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 saveapós alterações - Evite rodar PM2 como root (use usuário normal)