![将 pm2 服务迁移到新服务器](https://linux22.com/image/788815/%E5%B0%86%20pm2%20%E6%9C%8D%E5%8A%A1%E8%BF%81%E7%A7%BB%E5%88%B0%E6%96%B0%E6%9C%8D%E5%8A%A1%E5%99%A8.png)
为了支持最新版本的 NodeJS,我们需要将我们的 Web 服务器从 Amazon Linux 2 迁移到 Amazon Linux 2023。此举使我们无法执行通常的启动/关闭实例,并且涉及完整迁移。
除了基于节点的服务外,一切似乎都运行顺利。我所做的是复制.pm2/dump.pm2
到新服务器并启动 pm2 作为服务。它最初看起来不错,但它显示没有任何服务占用任何 CPU 或 RAM,并且 apache 代理连接无法连接,所以我认为它们实际上都没有运行。我pm2 resurrect
也试过了,但反应是一样的:
# 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 似乎也认为它正在发挥作用:
# 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 >
假设一切都在它应该在的地方并且正常工作,那么让 pm2 在新机器上重新启动其所有服务的正确方法是什么?只有 7 个服务,所以我当然可以手动启动它们,但是...我认为有某种方法可以自动完成此操作。