PM2 是 Node.js 应用的进程管理器,能帮助你实现应用的启动、停止、重启、监控等功能,同时支持进程守护(应用崩溃后自动重启)。以下是 PM2 的常用操作指南:
一、安装 PM2
全局安装 PM2(需要 Node.js 环境):
npm install pm2 -g
二、基本使用命令
1. 启动应用
最基础的启动命令(以 Node.js 应用为例):
pm2 start app.js # 启动 app.js
常用参数:
--name <name>:给进程命名(方便后续管理)pm2 start app.js --name "my-api"--watch:监听文件变化,自动重启应用(开发环境常用)pm2 start app.js --watch-i <num>:启动多个实例(实现负载均衡,num=0表示根据 CPU 核心数自动分配)pm2 start app.js -i 3 # 启动 3 个实例--env <env>:指定环境变量(结合配置文件使用)pm2 start app.js --env production
2. 查看进程状态
pm2 list # 查看所有进程状态(简洁版)
pm2 status # 同上,显示更详细信息
pm2 monit # 进入交互式监控界面(实时查看 CPU/内存占用)
3. 停止/重启/删除进程
# 停止进程(通过名称或 ID)
pm2 stop my-api # 通过名称
pm2 stop 0 # 通过 ID(0 是进程列表中的 ID)
# 重启进程(修改代码后常用)
pm2 restart my-api
pm2 restart all # 重启所有进程
# 删除进程(从 PM2 列表中移除)
pm2 delete my-api
pm2 delete all # 删除所有进程
4. 日志管理
PM2 会自动记录应用输出的日志:
pm2 logs # 查看所有进程的日志
pm2 logs my-api # 查看指定进程的日志
pm2 logs --lines 100 # 查看最近 100 行日志
pm2 flush # 清空所有日志
三、配置文件(推荐)
对于复杂应用,建议用配置文件管理 PM2 启动参数,支持 JSON、YAML 或 JS 格式。
示例(ecosystem.config.js):
module.exports = {
apps: [
{
name: "my-nuxt-app", // 进程名
script: ".output/server/index.mjs", // 入口文件(Nuxt4 构建后的入口)
instances: "max", // 自动根据 CPU 核心数启动实例
exec_mode: "cluster", // 集群模式(负载均衡)
watch: false, // 生产环境关闭 watch
env: {
NODE_ENV: "development" // 开发环境变量
},
env_production: {
NODE_ENV: "production" // 生产环境变量
}
}
]
};
通过配置文件启动:
pm2 start ecosystem.config.js # 默认使用 development 环境
pm2 start ecosystem.config.js --env production # 使用 production 环境
四、开机自启动
设置 PM2 管理的应用在服务器重启后自动启动:
# 生成开机自启脚本
pm2 startup
# 按照命令提示执行生成的脚本(通常是类似 sudo env ... 的命令)
# 保存当前进程列表,确保重启后能恢复
pm2 save
取消自启动:
pm2 unstartup
五、常用进阶命令
pm2 reload <name>:零停机重启(适用于集群模式,逐个重启实例,避免服务中断)pm2 reset <name>:重置进程的统计信息(CPU/内存等)pm2 update:更新 PM2 版本(会自动重启所有进程)pm2 info <name>:查看进程的详细信息(如启动时间、环境变量等)
总结
PM2 核心功能围绕「进程管理」和「高可用」,常用命令可总结为:
pm2 start # 启动
pm2 list # 查看
pm2 restart # 重启
pm2 stop # 停止
pm2 delete # 删除
pm2 logs # 日志
pm2 monit # 监控
根据实际需求(开发/生产环境、单实例/集群模式)调整参数即可。
1185

被折叠的 条评论
为什么被折叠?



