#!/bin/bash # 重启保险后端服务脚本 echo "🔄 重启保险后端服务..." # 设置工作目录 cd /var/www/insurance-backend # 停止现有服务 echo "🛑 停止现有服务..." pm2 stop insurance-backend 2>/dev/null || true pkill -f "node.*src/app.js" 2>/dev/null || true # 等待进程完全停止 sleep 3 # 检查端口是否被释放 if lsof -Pi :3000 -sTCP:LISTEN -t >/dev/null ; then echo "⚠️ 端口3000仍被占用,强制停止..." sudo fuser -k 3000/tcp 2>/dev/null || true sleep 2 fi # 启动服务 echo "🚀 启动服务..." pm2 start ecosystem.config.js --env production # 等待服务启动 echo "⏳ 等待服务启动..." sleep 5 # 检查服务状态 echo "🔍 检查服务状态..." pm2 status # 测试API echo "🧪 测试API..." for i in {1..3}; do if curl -s http://127.0.0.1:3000/health > /dev/null; then echo "✅ API测试成功" break else echo "⏳ 等待API启动... ($i/3)" sleep 2 fi done # 保存PM2配置 pm2 save echo "" echo "✅ 服务重启完成!" echo "📋 服务信息:" echo " 服务名称: insurance-backend" echo " 端口: 3000" echo " 环境: production" echo "" echo "🔍 查看日志: pm2 logs insurance-backend" echo "📊 监控面板: pm2 monit"