daemonize@pm2管理nodejs/php/python...进程

🔍 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.安装

1
npm install -g pm2

🚀 4.基本用法

1. 启动应用

1
2
3
4
5
6
7
pm2 start app.js              # 启动 Node.js 应用

pm2 start app.php --interpreter=php # 启动 PHP 应用

pm2 start worker.php --interpreter=php --name php-worker

pm2 start script.py --interpreter=python3 # 启动 Python 脚本
  • --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 # 连接到 PM2 Plus 云服务(可选)

📌 6.总结常用命令速查表

命令 作用
pm2 start <file> 启动应用
pm2 list 显示所有管理的进程
pm2 logs 实时日志输出
pm2 restart <name> 重启指定进程
pm2 stop <name> 停止进程
pm2 delete <name> 删除进程
pm2 save 保存进程列表用于开机自启
pm2 startup 设置系统启动自动恢复