PM2 是 Node.js 专属的进程管理器,支持自动重启、日志管理、进程守护,适合未容器化的场景
步骤 1:安装 PM2(全局安装)
bash
运行
npm install pm2 -g
步骤 2:编译 NestJS 代码(先构建生产包)
bash
运行
npm run build # 生成 dist 目录(编译后的 JS 代码)
步骤 3:用 PM2 启动服务(永久运行)
bash
运行
# 方式 1:直接启动(推荐)
pm2 start dist/main.js --name nest-api
# 方式 2:通过配置文件启动(更易管理,推荐生产环境)
# 创建 pm2.config.js
cat > pm2.config.js << EOF
module.exports = {
apps: [{
name: 'nest-api', // 进程名
script: 'dist/main.js', // 启动入口
instances: 'max', // 多核CPU自动利用(集群模式)
autorestart: true, // 崩溃自动重启
watch: false, // 生产环境关闭监听(避免代码改动触发重启)
max_memory_restart: '1G',// 内存占用超1G自动重启
env_production: {
NODE_ENV: 'production'
}
}]
};
EOF
# 启动配置文件
pm2 start pm2.config.js --env production
步骤 4:设置 PM2 开机自启(服务器重启后自动运行)
bash
运行
# 生成开机自启脚本
pm2 startup
# 按提示执行输出的命令(示例):
# sudo env PATH=$PATH:/usr/local/bin pm2 startup systemd -u root --hp /root
# 保存当前 PM2 进程列表(确保重启后恢复)
pm2 save
PM2 常用管理命令
bash
运行
pm2 list # 查看所有进程
pm2 logs nest-api # 查看服务日志(实时)
pm2 restart nest-api # 重启服务
pm2 stop nest-api # 停止服务
pm2 delete nest-api # 删除进程
pm2 monit # 监控进程资源占用
715

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



