#!/bin/bash # 锡林郭勒盟智慧养殖平台 - 生产环境启动脚本 # 服务器目录: /data/nodejs/xlxumu/ TARGET_DIR="/data/nodejs/xlxumu" APP_DIR="$TARGET_DIR/backend/api" # 颜色定义 RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[1;33m' NC='\033[0m' # No Color echo -e "${GREEN}🚀 启动锡林郭勒盟智慧养殖平台API服务${NC}" # 检查Node.js是否安装 if ! command -v node &> /dev/null; then echo -e "${RED}❌ Node.js未安装,请先安装Node.js${NC}" exit 1 fi # 检查npm是否安装 if ! command -v npm &> /dev/null; then echo -e "${RED}❌ npm未安装,请先安装npm${NC}" exit 1 fi # 检查PM2是否安装 if ! command -v pm2 &> /dev/null; then echo -e "${YELLOW}📦 安装PM2...${NC}" npm install -g pm2 fi # 进入应用目录 cd $APP_DIR # 检查目录是否存在 if [ ! -d "$APP_DIR" ]; then echo -e "${RED}❌ 应用目录不存在: $APP_DIR${NC}" exit 1 fi # 检查package.json是否存在 if [ ! -f "package.json" ]; then echo -e "${RED}❌ package.json不存在${NC}" exit 1 fi # 安装依赖 echo -e "${YELLOW}📦 安装项目依赖...${NC}" npm install --production # 停止现有服务(如果存在) echo -e "${YELLOW}🛑 停止现有服务...${NC}" pm2 delete xlxumu-api 2>/dev/null || true # 启动服务 echo -e "${YELLOW}🚀 启动API服务...${NC}" pm2 start server.js --name xlxumu-api --env production # 配置PM2开机自启 echo -e "${YELLOW}⚙️ 配置PM2开机自启...${NC}" pm2 startup pm2 save # 显示服务状态 echo -e "${GREEN}✅ 服务启动完成!${NC}" echo -e "${GREEN}📊 当前服务状态:${NC}" pm2 status xlxumu-api echo -e "${GREEN}🌐 API服务运行在: http://localhost:3350${NC}" echo -e "${GREEN}📋 查看详细日志: pm2 logs xlxumu-api${NC}" echo -e "${GREEN}🔄 重启服务: pm2 restart xlxumu-api${NC}" echo -e "${GREEN}⏹️ 停止服务: pm2 stop xlxumu-api${NC}"