同一服务器启动多PM2实例,分离UAT与生产环境的方法问询
同一服务器启动多PM2实例(分离UAT/生产环境)指南
核心原理:通过PM2_HOME环境变量隔离实例
PM2的所有配置、进程数据都存放在PM2_HOME指定的目录下,给不同环境设置不同的PM2_HOME路径,就能实现完全隔离的PM2实例。
1. 设置PM2_HOME的方式
无需修改全局系统变量,每次操作对应环境的PM2前,临时指定环境变量即可:
- Linux/macOS:
- UAT环境:
export PM2_HOME=~/.pm2-uat - 生产环境:
export PM2_HOME=~/.pm2-prod
- UAT环境:
- Windows:
- UAT环境:
set PM2_HOME=C:\Users\你的用户名\.pm2-uat - 生产环境:
set PM2_HOME=C:\Users\你的用户名\.pm2-prod
- UAT环境:
建议把上述命令写入各自环境的启动脚本(比如
start-uat.sh/start-prod.cmd),避免每次手动输入。
2. 启动对应环境的PM2实例
设置好PM2_HOME后,正常执行PM2命令即可,该环境的所有进程、配置都会独立存储在指定目录中:
- 启动UAT环境应用:
export PM2_HOME=~/.pm2-uat pm2 start app.js --name uat-app - 启动生产环境应用:
export PM2_HOME=~/.pm2-prod pm2 start app.js --name prod-app
3. 关于pub.sock和rpc.sock的说明
不需要手动创建这两个文件!PM2启动后,会自动在当前PM2_HOME目录下生成这两个用于进程通信的文件,只要正确设置PM2_HOME并启动PM2,它们就会自动出现。
4. 不同环境PM2实例的常用命令示例
所有操作都需先指定对应环境的PM2_HOME:
- 查看UAT环境进程列表:
export PM2_HOME=~/.pm2-uat && pm2 list - 重启生产环境指定应用:
export PM2_HOME=~/.pm2-prod && pm2 restart prod-app - 保存UAT环境进程列表(用于开机自启):
export PM2_HOME=~/.pm2-uat && pm2 save - 设置UAT环境PM2开机自启:
export PM2_HOME=~/.pm2-uat && pm2 startup
内容的提问来源于stack exchange,提问作者jerryjer
相关产品推荐
相关产品推荐

