Introdução
O PM2 é um gerenciador de processos para aplicações Node.js em ambiente de produção. Este guia apresenta os principais comandos e suas utilizações.
Instalação
npm install pm2 -g
Comandos Básicos
Iniciar Aplicações
- Iniciar uma aplicação:
pm2 start app.js
- Iniciar com nome específico:
pm2 start app.js --name "minha-app"
- Iniciar no modo cluster:
pm2 start app.js -i max
Gerenciamento de Aplicações
- Listar todas as aplicações:
pm2 list
- Reiniciar uma aplicação:
pm2 restart app_name
- Parar uma aplicação:
pm2 stop app_name
- Deletar uma aplicação:
pm2 delete app_name
Monitoramento
- Monitorar em tempo real:
pm2 monit
- Visualizar logs:
pm2 logs
- Visualizar logs específicos:
pm2 logs app_name
Configurações Avançadas
Arquivo de Configuração (ecosystem.config.js)
module.exports = {
apps: [{
name: "app",
script: "./app.js",
env: {
NODE_ENV: "development",
},
env_production: {
NODE_ENV: "production",
}
}]
}
- Iniciar usando arquivo de configuração:
pm2 start ecosystem.config.js
Comandos de Cluster
- Escalar para um número específico de instâncias:
pm2 scale app +3
- Recarregar sem downtime:
pm2 reload app_name
Gerenciamento do Sistema
- Salvar lista atual de processos:
pm2 save
- Iniciar PM2 no boot do sistema:
pm2 startup
- Restaurar processos salvos:
pm2 resurrect
Comandos de Manutenção
- Limpar logs:
pm2 flush
- Resetar metadata:
pm2 reset app_name
Monitoramento Avançado
- Dashboard web:
pm2 plus
- Status do sistema:
pm2 status
Configurações de Log
- Rotação de logs:
pm2 install pm2-logrotate
Dicas e Boas Práticas
-
Nomeação de Aplicações
- Use nomes descritivos e significativos
- Evite espaços e caracteres especiais
- Mantenha consistência na nomenclatura
-
Gerenciamento de Memória
- Configure limites de memória no ecosystem.config.js
- Monitore regularmente o uso de recursos
- Configure reinícios automáticos quando necessário
-
Logs
- Implemente rotação de logs para aplicações de produção
- Mantenha logs organizados por aplicação
- Configure níveis de log apropriados
-
Deployment
- Use arquivos de configuração para diferentes ambientes
- Implemente estratégias de zero-downtime
- Mantenha backups das configurações
Solução de Problemas Comuns
Erro: Port already in use
pm2 delete all
pm2 reset all
Memória Alta
pm2 reload all
Logs Corrompidos
pm2 flush
pm2 reloadLogs
Comandos de Debug
- Verificar informações detalhadas:
pm2 show app_name
- Debug de uma aplicação:
pm2 start app.js --node-args="--inspect"
Referências e Recursos Adicionais
- Documentação Oficial: PM2 Documentation
- GitHub: PM2 Repository
- PM2 Plus: Monitoramento Avançado
Top comments (0)