PM2用于Node.js/Bun应用程序的生产环境进程管理器


P(rocess) M(anager) 2
Runtime Edition

PM2 是一款 Node.js/Bun 应用的生产级进程管理器,内置负载均衡器。它允许您永久保持应用运行,无需停机即可重新加载,并简化常见的系统管理任务。

在生产模式下启动应用非常简单:

bash 复制代码
$ pm2 start app.js

PM2 持续受到 超过 1800 个测试 的严格测试。

官方网站:https://pm2.keymetrics.io/

适用于 Linux(稳定版)、macOS(稳定版)和 Windows(稳定版)。自 Node.js 12.X 和 Bun v1 起,所有 Node.js 版本均受支持。

安装 PM2

使用 NPM

bash 复制代码
$ npm install pm2 -g

使用 Bun

bash 复制代码
$ bun install pm2 -g

请注意,如果您只想通过 sudo ln -s /home/$USER/.bun/bin/bun /usr/bin/node 使用 bun,则可能需要将 node 符号链接到 bun

启动应用程序

您可以像这样启动任何应用程序(Node.js、Bun,以及 Python、Ruby、$PATH 中的二进制文件等):

bash 复制代码
$ pm2 start app.js

您的应用程序现已被守护进程化、监控并永久保持活动状态。

管理应用程序

应用程序启动后,您可以轻松管理它们:

进程列表

列出所有正在运行的应用程序:

bash 复制代码
$ pm2 list

管理应用程序非常简单:

bash 复制代码
$ pm2 stop <app_name|namespace|id|'all'|json_conf>
$ pm2 restart <app_name|namespace|id|'all'|json_conf>
$ pm2 delete <app_name|namespace|id|'all'|json_conf>

查看特定应用程序的更多详细信息:

bash 复制代码
$ pm2 describe <id|app_name>

监控日志、自定义指标和应用程序信息:

bash 复制代码
$ pm2 monit

集群模式:Node.js 负载均衡和零停机重新加载

集群模式是启动 Node.js 应用程序时的一种特殊模式,它会启动多个进程并在它们之间平衡 HTTP/TCP/UDP 查询的负载。这可以提高整体性能(在 16 核机器上可提升 10 倍)和可靠性(在出现未处理的错误时,套接字可以更快地重新平衡)。

支持的框架

以集群模式启动 Node.js 应用程序,充分利用所有可用的 CPU:

bash 复制代码
$ pm2 start api.js -i <processes>

<processes> 可以是 'max'-1(所有 CPU 减 1)或指定要启动的实例数量。

零停机重载

热重载允许在不停机的情况下更新应用程序:

bash 复制代码
$ pm2 reload all

更多关于 PM2 如何简化集群的信息

容器支持

使用 node 的简易替代命令 pm2-runtime,您可以在强化的生产环境中运行您的 Node.js 应用程序。
使用起来非常顺畅:

复制代码
RUN npm install pm2 -g
CMD [ "pm2-runtime", "npm", "--", "start" ]

了解更多关于专用集成的信息

主机监控速度栏

PM2 允许使用监控速度栏来监控您的主机/服务器重要数据。

启用主机监控:

bash 复制代码
$ pm2 set pm2:sysmonit true
$ pm2 update

基于终端的监控

监控所有直接从命令行启动的进程:

bash 复制代码
$ pm2 monit

日志管理

要查看日志,只需输入以下命令:

bash 复制代码
$ pm2 logs

提供标准、原始、JSON 和格式化输出。

Examples:

bash 复制代码
$ pm2 logs APP-NAME       # Display APP-NAME logs
$ pm2 logs --json         # JSON output
$ pm2 logs --format       # Formated output

$ pm2 flush               # Flush all logs
$ pm2 reloadLogs          # Reload all logs

要启用日志轮换,请安装以下模块

bash 复制代码
$ pm2 install pm2-logrotate

启动脚本生成

PM2 可以生成并配置启动脚本,以确保每次服务器重启时 PM2 和您的进程保持活动状态。
支持的初始化系统:systemdupstartlaunchdrc.d

bash 复制代码
# Generate Startup Script
$ pm2 startup

# Freeze your process list across server restart
$ pm2 save

# Remove Startup Script
$ pm2 unstartup

更新 PM2

bash 复制代码
# Install latest PM2 version
$ npm install pm2@latest -g
# Save process list, exit old PM2 & restore all processes
$ pm2 update

PM2+ 监控

如果您使用 PM2 管理应用,PM2+ 可以轻松跨服务器监控和管理应用。

欢迎试用:

探索 PM2 的监控仪表板

提前致谢,希望您喜欢 PM2!

许可证

PM2 基于 GNU Affero 通用公共许可证 3.0 (AGPL 3.0) 的条款提供。
如需其他许可证,请联系我们](mailto:contact@keymetrics.io)。

关于项目

PM2 是一款用于 Node.js/Bun 应用程序的生产环境进程管理器,内置负载均衡器。它能够让您保持应用程序永久运行,无需停机即可重新加载,并简化常见的系统管理任务。
AGPL-3.0
Javascript
42,584
2661
636
2013-05-21
2025-09-26

增长趋势 - stars