当前位置: 首页 > news >正文

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

文章目录

  • **PM2 完全指南:Node.js 应用后台启动、关闭与重启详解**
    • **1. 什么是 PM2?**
    • **2. 安装 PM2**
      • **全局安装**
      • **验证安装**
    • **3. 使用 PM2 启动 Node.js 应用**
      • **基本启动**
      • **指定应用名称**
      • **集群模式(多进程负载均衡)**
      • **监听文件变化自动重启(开发模式)**
    • **4. 查看运行中的应用**
      • **列出所有应用**
      • **查看应用详情**
    • **5. 关闭/停止 Node.js 应用**
      • **停止单个应用**
      • **停止所有应用**
      • **删除应用(从 PM2 列表移除)**
    • **6. 重启 Node.js 应用**
      • **普通重启**
      • **零停机重启(优雅重载)**
      • **重启所有应用**
    • **7. 日志管理**
      • **查看实时日志**
      • **查看最近 100 行日志**
      • **清空日志**
    • **8. 监控应用性能**
      • **实时监控 CPU/内存**
      • **生成性能报告**
    • **9. 开机自启动**
      • **保存当前 PM2 应用列表**
      • **设置开机自启动**
      • **取消开机自启动**
    • **10. 高级用法**
      • **环境变量管理**
      • **最大内存限制**
    • **11. 常见问题**
      • **Q1: PM2 启动后应用仍然退出?**
      • **Q2: 如何更新 PM2?**
      • **Q3: PM2 占用 CPU 过高怎么办?**
    • **12. 总结**


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 开发者必备的工具,能极大提升应用稳定性,建议熟练掌握! 🚀

相关文章:

  • ONVIF/RTSP/RTMP协议EasyCVR视频汇聚平台RTMP协议配置全攻略 | 直播推流实战教程
  • 蓝桥杯赛前题
  • VectorBT量化入门系列:第五章 VectorBT性能评估与分析
  • zerotier安装在旁路由实现异地局域网互访的设置方法
  • P8754 [蓝桥杯 2021 省 AB2] 完全平方数
  • 蓝桥杯比赛 python程序设计——封闭图形个数
  • 使用Lombok的@Slf4j和idea构建:找不到log符号-解决
  • ARP代理
  • 微硕WINSOK高性能MOS管WSD30L40DN33在PD快充中的应用
  • JVM 之 String 引用机制解析:常量池、堆内存与 intern 方法
  • Windows 下搭建 Git 本地服务器并进行开发
  • Dify问题记录 (一)
  • 计算机视觉图像特征提取入门:Harris角点与SIFT算法
  • ctfshow WEB web9
  • 调用阿里云API实现身份证文字识别
  • 基于3d相机的点云物体检测与路径规划
  • Node.js 开发的简单 Web 服务器代码
  • 10分钟做了一个投资回报计算器,欢迎大家使用
  • 第二届数字图像处理与计算机应用国际学术会议(DIPCA 2025)
  • 城电科技 | 光伏太阳花:碳减排路上的璀璨新光光伏智慧花
  • 大气蓝色企业网站模板/什么是竞价
  • wordpress首页不显示文章/seo基本步骤
  • 体育如何做原创视频网站/新冠疫苗接种最新消息
  • 做网站帮外国人淘宝/点金推广优化公司
  • 专业做网站和小程序/电商运营公司简介
  • 毕业论文引用网站数据怎么做脚注/东莞seo公司