🔍 1.什么是 PM2?
PM2(Process Manager 2) ()是一个带有负载均衡功能的 Node.js 应用进程管理器,但它并不仅限于 Node.js,也能管理任何 CLI 启动的应用(包括 Python、PHP、Shell 脚本等)。PM2 让你可以轻松守护进程,自动重启,记录日志,进行系统启动集成。
✅ 2.核心特性
功能 |
描述 |
进程守护 |
自动重启崩溃或退出的进程 |
负载均衡(Cluster 模式) |
在多核 CPU 上负载均衡运行 Node.js 应用 |
日志管理 |
标准输出和错误日志集中管理 |
热重载(Watch) |
文件变动自动重启 |
系统启动启动(Startup Script) |
支持设置开机自动重启进程 |
支持多种语言 |
可运行任何 CLI 命令(不仅限于 Node.js) |
🛠️ 3.安装
🚀 4.基本用法
1. 启动应用
1 2 3 4 5 6 7
| pm2 start app.js
pm2 start app.php --interpreter=php
pm2 start worker.php --interpreter=php --name php-worker
pm2 start script.py --interpreter=python3
|
- --interpreter=php 指定使用 PHP 来解释脚本
- --name 是你给这个进程取的名字,便于管理
2. 指定参数
1
| pm2 start app.js --name my-app --watch
|
--name
: 给进程起个名字
--watch
: 监听文件改动自动重启
🔁 3.管理进程
1 2 3 4 5 6 7 8 9 10 11 12
| pm2 list pm2 show <name|id> pm2 restart <name|id> pm2 stop <name|id> pm2 delete <name|id>
pm2 logs php-worker pm2 stop php-worker pm2 restart php-worker pm2 delete php-worker pm2 save pm2 startup
|
3.1保持状态并开机启动
1 2 3 4
| pm2 save pm2 startup
sudo env PATH=$PATH:/usr/bin pm2 startup systemd -u username --hp /home/username
|
3.2日志查看
1 2 3
| pm2 logs pm2 logs my-app pm2 flush
|
🧠 4.使用配置文件(推荐)
创建 ecosystem.config.js
:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| module.exports = { apps: [ { name: 'api-server', script: 'server.js', watch: true, instances: 2, exec_mode: 'cluster', env: { NODE_ENV: 'development', }, env_production: { NODE_ENV: 'production', }, }, { name: 'php-worker', script: 'worker.php', interpreter: 'php', }, ], };
|
启动:
1
| pm2 start ecosystem.config.js
|
🌐 5.PM2 + Web UI(可选)
1 2 3 4
| pm2 install pm2-logrotate pm2 monit pm2-server-monit pm2 link
|
📌 6.总结常用命令速查表
命令 |
作用 |
pm2 start <file> |
启动应用 |
pm2 list |
显示所有管理的进程 |
pm2 logs |
实时日志输出 |
pm2 restart <name> |
重启指定进程 |
pm2 stop <name> |
停止进程 |
pm2 delete <name> |
删除进程 |
pm2 save |
保存进程列表用于开机自启 |
pm2 startup |
设置系统启动自动恢复 |