Files
xlxumu/scripts/start-server.sh

75 lines
1.9 KiB
Bash
Raw Normal View History

#!/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}"