Logo

dev-resources.site

for different kinds of informations.

Guia de Comandos PM2

Published at
11/27/2024
Categories
pm2
infrastructureascode
cluster
webdev
Author
kirodoras
Author
9 person written this
kirodoras
open
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

infrastructureascode Article's
30 articles in total
Favicon
Introduction to Terraform: Revolutionizing Infrastructure as Code
Favicon
Terraform input validation
Favicon
2024 Product Release Highlights
Favicon
Thrilled to Announce the Launch of My Book "Mastering Infrastructure as Code with AWS CloudFormation"
Favicon
New Backstage Plugin: Manage and Deploy IaC from Your Internal Developer Portal
Favicon
AWS CloudFormation: Infrastructure as Code for Efficient Cloud Management
Favicon
Mastering Managed IaC Self-Service: The Complete Guide
Favicon
Declarative in Terraform: Simple, Until It’s Not! 🚧
Favicon
Build vs. Buy: Choosing the Right Approach to IaC Management
Favicon
Infrastructure as Code
Favicon
Streamlining env0 Onboarding with Environment Discovery
Favicon
How we handle Terraform downstream dependencies without additional frameworks
Favicon
Introduction à Terraform avec Proxmox
Favicon
Automating Docker Workflows with Chef: A Complete Guide
Favicon
Terraform Cookbook: Development Environment Recipe
Favicon
Automating Docker Management with Terraform
Favicon
Top DevOps Tools for Infrastructure Automation in 2025
Favicon
Setting Up a Production-Ready Kubernetes Cluster with RKE2 in vSphere Using Terraform
Favicon
Mastering Ansible Playbooks: Step by Step Guide
Favicon
Guia de Comandos PM2
Favicon
Terraform Basics
Favicon
Part 1: Setting Up Initial AWS Infrastructure for the Intrusion Detection System with Terraform (Tutorial)
Favicon
AWS CloudFormation Tutorial: Automating Infrastructure as Code
Favicon
Harnessing the Power of AWS Security Services
Favicon
What is infrastructure as code and how its transforming DevOps
Favicon
Building a Smart Log Pipeline: Syslog Parsing, Data Enrichment, and Analytics with Logstash, Elasticsearch, and Ruby
Favicon
Docker for Infrastructure as Code (IaC): Automating Infrastructure with Containers
Favicon
Concept of Infrastructure Monitoring
Favicon
Terraform Map Variable: A Complete Guide with Practical Examples
Favicon
Terraform Workspaces Guide: Commands, Examples and Best Practices

Featured ones: