PM2 完全指南:Node.js 应用后台启动、关闭与重启详解


PM2 完全指南:Node.js 应用后台启动、关闭与重启详解

1. 什么是 PM2?

PM2 是 Node.js 最流行的进程管理工具之一,它可以帮助开发者:

  • 后台运行 Node.js 应用(即使关闭终端也不会停止)
  • 自动重启 崩溃的应用
  • 负载均衡(多进程模式)
  • 日志管理
  • 监控性能(CPU、内存)
  • 开机自启动

适用于生产环境部署,极大提升 Node.js 应用的稳定性和可维护性。


2. 安装 PM2

全局安装

管理员cmd窗口运行
npm install pm2 -g
安装windows自启动包
npm install pm2-windows-startup -g
执行命令
pm2-startup install 
查看是否安装成功
pm2 -v

如果安装失败(权限问题):

sudo npm install -g pm2  # Linux/macOS
npm install -g pm2 --unsafe-perm  # 绕过权限限制

验证安装

pm2 --version
# 输出示例:5.2.2

3. 使用 PM2 启动 Node.js 应用

基本启动

pm2 start app.js
  • 默认会在后台运行
  • 应用名称默认为 app(不带 .js

指定应用名称

pm2 start app.js --name "my-api"

集群模式(多进程负载均衡)

pm2 start app.js -i 4  # 启动 4 个实例(根据 CPU 核心数优化)

监听文件变化自动重启(开发模式)

pm2 start app.js --watch

4. 查看运行中的应用

列出所有应用

pm2 list
# 或
pm2 ls

输出示例:

┌─────┬───────────┬─────────────┬─────────┬─────────┬──────┬───────────┐
│ id  │ name      │ namespace   │ version │ mode    │ pid  │ uptime    │
├─────┼───────────┼─────────────┼─────────┼─────────┼──────┼───────────┤
│ 0   │ my-api    │ default     │ 1.0.0   │ fork    │ 1234 │ 2D        │
└─────┴───────────┴─────────────┴─────────┴─────────┴──────┴───────────┘
  • id:进程的唯一标识符
  • name:应用名称
  • pid:进程 ID
  • uptime:运行时间

查看应用详情

pm2 show my-api

5. 关闭/停止 Node.js 应用

停止单个应用

pm2 stop my-api
# 或通过 id 停止
pm2 stop 0

停止所有应用

pm2 stop all

删除应用(从 PM2 列表移除)

pm2 delete my-api
# 或
pm2 delete 0

6. 重启 Node.js 应用

普通重启

pm2 restart my-api

零停机重启(优雅重载)

适用于生产环境,避免请求中断:

pm2 reload my-api

重启所有应用

pm2 restart all

7. 日志管理

查看实时日志

pm2 logs my-api

查看最近 100 行日志

pm2 logs --lines 100

清空日志

pm2 flush

8. 监控应用性能

实时监控 CPU/内存

pm2 monit

会打开一个交互式面板,显示各进程的资源占用情况。

生成性能报告

pm2 report

9. 开机自启动

保存当前 PM2 应用列表

pm2 save

设置开机自启动

pm2 startup

然后按照提示执行生成的命令(如 systemd、init.d 等)。

取消开机自启动

pm2 unstartup

10. 高级用法

环境变量管理

pm2 start app.js --env production

并在项目根目录创建 ecosystem.config.js

module.exports = {
  apps: [{
    name: "my-api",
    script: "app.js",
    env: {
      NODE_ENV: "development",
    },
    env_production: {
      NODE_ENV: "production",
    }
  }]
};

然后启动:

pm2 start ecosystem.config.js --env production

最大内存限制

pm2 start app.js --max-memory-restart 512M

当内存超过 512MB 时自动重启。


11. 常见问题

Q1: PM2 启动后应用仍然退出?

可能是代码错误,查看日志:

pm2 logs my-api

Q2: 如何更新 PM2?

npm install -g pm2@latest
pm2 update

Q3: PM2 占用 CPU 过高怎么办?

检查是否有内存泄漏,或限制 CPU:

pm2 start app.js --max-memory-restart 1G

12. 总结

操作命令
启动应用pm2 start app.js --name my-api
停止应用pm2 stop my-api
重启应用pm2 restart my-api
零停机重载pm2 reload my-api
查看日志pm2 logs my-api
监控性能pm2 monit
开机自启pm2 save && pm2 startup

PM2 是 Node.js 开发者必备的工具,能极大提升应用稳定性,建议熟练掌握! 🚀

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

和烨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值