DEV Community

Cover image for Guia de Comandos PM2
Mateus Figueiredo Pereira
Mateus Figueiredo Pereira

Posted on

Guia de Comandos PM2

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
Enter fullscreen mode Exit fullscreen mode

Comandos Básicos

Iniciar Aplicações

  • Iniciar uma aplicação:
pm2 start app.js
Enter fullscreen mode Exit fullscreen mode
  • Iniciar com nome específico:
pm2 start app.js --name "minha-app"
Enter fullscreen mode Exit fullscreen mode
  • Iniciar no modo cluster:
pm2 start app.js -i max
Enter fullscreen mode Exit fullscreen mode

Gerenciamento de Aplicações

  • Listar todas as aplicações:
pm2 list
Enter fullscreen mode Exit fullscreen mode
  • Reiniciar uma aplicação:
pm2 restart app_name
Enter fullscreen mode Exit fullscreen mode
  • Parar uma aplicação:
pm2 stop app_name
Enter fullscreen mode Exit fullscreen mode
  • Deletar uma aplicação:
pm2 delete app_name
Enter fullscreen mode Exit fullscreen mode

Monitoramento

  • Monitorar em tempo real:
pm2 monit
Enter fullscreen mode Exit fullscreen mode
  • Visualizar logs:
pm2 logs
Enter fullscreen mode Exit fullscreen mode
  • Visualizar logs específicos:
pm2 logs app_name
Enter fullscreen mode Exit fullscreen mode

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",
    }
  }]
}
Enter fullscreen mode Exit fullscreen mode
  • Iniciar usando arquivo de configuração:
pm2 start ecosystem.config.js
Enter fullscreen mode Exit fullscreen mode

Comandos de Cluster

  • Escalar para um número específico de instâncias:
pm2 scale app +3
Enter fullscreen mode Exit fullscreen mode
  • Recarregar sem downtime:
pm2 reload app_name
Enter fullscreen mode Exit fullscreen mode

Gerenciamento do Sistema

  • Salvar lista atual de processos:
pm2 save
Enter fullscreen mode Exit fullscreen mode
  • Iniciar PM2 no boot do sistema:
pm2 startup
Enter fullscreen mode Exit fullscreen mode
  • Restaurar processos salvos:
pm2 resurrect
Enter fullscreen mode Exit fullscreen mode

Comandos de Manutenção

  • Limpar logs:
pm2 flush
Enter fullscreen mode Exit fullscreen mode
  • Resetar metadata:
pm2 reset app_name
Enter fullscreen mode Exit fullscreen mode

Monitoramento Avançado

  • Dashboard web:
pm2 plus
Enter fullscreen mode Exit fullscreen mode
  • Status do sistema:
pm2 status
Enter fullscreen mode Exit fullscreen mode

Configurações de Log

  • Rotação de logs:
pm2 install pm2-logrotate
Enter fullscreen mode Exit fullscreen mode

Dicas e Boas Práticas

  1. Nomeação de Aplicações

    • Use nomes descritivos e significativos
    • Evite espaços e caracteres especiais
    • Mantenha consistência na nomenclatura
  2. 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
  3. Logs

    • Implemente rotação de logs para aplicações de produção
    • Mantenha logs organizados por aplicação
    • Configure níveis de log apropriados
  4. 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
Enter fullscreen mode Exit fullscreen mode

Memória Alta

pm2 reload all
Enter fullscreen mode Exit fullscreen mode

Logs Corrompidos

pm2 flush
pm2 reloadLogs
Enter fullscreen mode Exit fullscreen mode

Comandos de Debug

  • Verificar informações detalhadas:
pm2 show app_name
Enter fullscreen mode Exit fullscreen mode
  • Debug de uma aplicação:
pm2 start app.js --node-args="--inspect"
Enter fullscreen mode Exit fullscreen mode

Referências e Recursos Adicionais

Top comments (0)