migrar serviços pm2 para novo servidor

migrar serviços pm2 para novo servidor

Para oferecer suporte às versões mais recentes do NodeJS, precisamos migrar nossos servidores web do Amazon Linux 2 para o Amazon Linux 2023. Fazer essa mudança nos impede de fazer as instâncias habituais de spin-up/down e envolve uma migração completa.

Tudo parece estar funcionando perfeitamente, exceto os serviços baseados em nós. O que fiz foi copiar .pm2/dump.pm2para um novo servidor e lançar o pm2 como serviço. Inicialmente parecia bom, mas mostra que nenhum dos serviços está consumindo CPU ou RAM, e as conexões proxy do Apache não estão conseguindo se conectar, então acho que nenhum deles está realmente em execução. Eu tentei pm2 resurrecttambém, mas a resposta é a mesma:

# pm2 resurrect
[PM2] Resurrecting
[PM2] Restoring processes located in /root/.pm2/dump.pm2
┌────┬────────────────────┬──────────┬──────┬───────────┬──────────┬──────────┐
│ id │ name               │ mode     │ ↺    │ status    │ cpu      │ memory   │
├────┼────────────────────┼──────────┼──────┼───────────┼──────────┼──────────┤
│ 3  │ IDAP Dev           │ fork     │ 0    │ online    │ 0%       │ 0b       │
│ 4  │ IDAP Website       │ fork     │ 0    │ online    │ 0%       │ 0b       │
│ 2  │ Mirovoy NextJS     │ fork     │ 0    │ online    │ 0%       │ 0b       │
│ 5  │ Reanthropize       │ fork     │ 0    │ online    │ 0%       │ 0b       │
│ 6  │ Reanthropize Stage │ fork     │ 0    │ online    │ 0%       │ 0b       │
│ 1  │ lp-api             │ fork     │ 0    │ online    │ 0%       │ 0b       │
│ 0  │ url-shortener      │ fork     │ 0    │ online    │ 0%       │ 0b       │
└────┴────────────────────┴──────────┴──────┴───────────┴──────────┴──────────┘

Systemctl também parece pensar que está funcionando:

# systemctl status pm2-root
● pm2-root.service - PM2 process manager
     Loaded: loaded (/etc/systemd/system/pm2-root.service; enabled; preset: dis>
     Active: active (running) since Sun 2023-08-27 10:44:43 UTC; 1h 7min ago
       Docs: https://pm2.keymetrics.io/
    Process: 135008 ExecStart=/root/.nvm/versions/node/v18.17.1/lib/node_module>
   Main PID: 135015 (PM2 v5.3.0: God)
      Tasks: 11 (limit: 4568)
     Memory: 20.3M
        CPU: 925ms
     CGroup: /system.slice/pm2-root.service
             └─135015 "PM2 v5.3.0: God Daemon (/root/.pm2)"

Aug 27 10:44:43 ip-10-0-6-45.eu-central-1.compute.internal pm2[135008]: ├────┼─>
Aug 27 10:44:43 ip-10-0-6-45.eu-central-1.compute.internal pm2[135008]: │ 3  │ >
Aug 27 10:44:43 ip-10-0-6-45.eu-central-1.compute.internal pm2[135008]: │ 4  │ >
Aug 27 10:44:43 ip-10-0-6-45.eu-central-1.compute.internal pm2[135008]: │ 2  │ >
Aug 27 10:44:43 ip-10-0-6-45.eu-central-1.compute.internal pm2[135008]: │ 5  │ >
Aug 27 10:44:43 ip-10-0-6-45.eu-central-1.compute.internal pm2[135008]: │ 6  │ >
Aug 27 10:44:43 ip-10-0-6-45.eu-central-1.compute.internal pm2[135008]: │ 1  │ >
Aug 27 10:44:43 ip-10-0-6-45.eu-central-1.compute.internal pm2[135008]: │ 0  │ >
Aug 27 10:44:43 ip-10-0-6-45.eu-central-1.compute.internal pm2[135008]: └────┴─>
Aug 27 10:44:43 ip-10-0-6-45.eu-central-1.compute.internal systemd[1]: Started >

Supondo que tudo esteja onde deveria estar e funcionando, qual é a maneira certa de fazer com que o pm2 reinicie todos os seus serviços na nova máquina? Existem apenas 7 serviços, então eu poderia, é claro, iniciá-los todos manualmente, mas... acho que há alguma maneira de fazer isso automaticamente.

informação relacionada