#!/bin/bash # ============================================ # 本地开发环境状态检查脚本 # 用法: ./dev-status.sh # ============================================ # 颜色输出 RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[1;33m' BLUE='\033[0;34m' NC='\033[0m' # No Color # 服务端口配置 GATEWAY_PORT=8000 SYS_PORT=8100 CUST_PORT=8110 PROJ_PORT=8120 REQ_PORT=8130 EXP_PORT=8140 RECEIPT_PORT=8150 FILE_PORT=8600 REPORT_PORT=8700 # 检查端口状态 check_port_status() { local port=$1 local service=$2 local pid="" if netstat -tlnp 2>/dev/null | grep -q ":${port} "; then pid=$(netstat -tlnp 2>/dev/null | grep ":${port} " | awk '{print $7}' | cut -d'/' -f1) echo -e " ${GREEN}✓${NC} ${service} (端口 ${port}, PID: ${pid})" return 0 else echo -e " ${RED}✗${NC} ${service} (端口 ${port})" return 1 fi } # 检查前端状态 check_frontend_status() { local vite_pids=$(pgrep -f "vite.*fund-admin" | head -1) if [ -n "${vite_pids}" ]; then local port=$(netstat -tlnp 2>/dev/null | grep "${vite_pids}/node" | awk '{print $4}' | grep -oP ':\d+$' | tr -d ':') echo -e " ${GREEN}✓${NC} 前端 (fund-admin) - 端口: ${port:-未知}, PID: ${vite_pids}" echo -e " 访问地址: http://localhost:${port:-3000}" else echo -e " ${RED}✗${NC} 前端 (fund-admin)" fi } # 检查依赖服务 check_dependencies() { echo "" echo -e "${BLUE}依赖服务:${NC}" # Nacos if netstat -tlnp 2>/dev/null | grep -q ":8848 "; then echo -e " ${GREEN}✓${NC} Nacos (8848)" else echo -e " ${RED}✗${NC} Nacos (8848) - 未运行" fi # MySQL if netstat -tlnp 2>/dev/null | grep -q ":3306 "; then echo -e " ${GREEN}✓${NC} MySQL (3306)" else echo -e " ${RED}✗${NC} MySQL (3306) - 未运行" fi # Redis if netstat -tlnp 2>/dev/null | grep -q ":6379 "; then echo -e " ${GREEN}✓${NC} Redis (6379)" else echo -e " ${YELLOW}?${NC} Redis (6379) - 未运行 (可选)" fi } # 统计运行中的服务数量 count_running_services() { local count=0 for port in ${GATEWAY_PORT} ${SYS_PORT} ${CUST_PORT} ${PROJ_PORT} ${REQ_PORT} ${EXP_PORT} ${RECEIPT_PORT} ${FILE_PORT} ${REPORT_PORT}; do if netstat -tlnp 2>/dev/null | grep -q ":${port} "; then ((count++)) fi done echo ${count} } # 主函数 main() { echo "" echo -e "${BLUE}==========================================${NC}" echo -e "${BLUE} 本地开发环境状态${NC}" echo -e "${BLUE}==========================================${NC}" echo "" echo -e "${BLUE}后端服务:${NC}" check_port_status ${GATEWAY_PORT} "网关 (fund-gateway)" check_port_status ${SYS_PORT} "系统 (fund-sys)" check_port_status ${CUST_PORT} "客户 (fund-cust)" check_port_status ${PROJ_PORT} "项目 (fund-proj)" check_port_status ${REQ_PORT} "需求 (fund-req)" check_port_status ${EXP_PORT} "支出 (fund-exp)" check_port_status ${RECEIPT_PORT} "票据 (fund-receipt)" check_port_status ${FILE_PORT} "文件 (fund-file)" check_port_status ${REPORT_PORT} "报表 (fund-report)" echo "" echo -e "${BLUE}前端服务:${NC}" check_frontend_status local running=$(count_running_services) echo "" echo -e "已启动 ${GREEN}${running}${NC}/9 个后端服务" check_dependencies echo "" echo -e "${BLUE}==========================================${NC}" echo -e "操作命令:" echo -e " 启动所有: ${GREEN}./scripts/dev-start.sh${NC}" echo -e " 启动核心: ${GREEN}./scripts/dev-start.sh core${NC}" echo -e " 停止所有: ${GREEN}./scripts/dev-stop.sh${NC}" echo -e " 查看状态: ${GREEN}./scripts/dev-status.sh${NC}" echo "" echo -e "单独启动服务:" echo -e " ${GREEN}./scripts/dev-start.sh sys${NC} # 系统服务" echo -e " ${GREEN}./scripts/dev-start.sh cust${NC} # 客户服务" echo -e " ${GREEN}./scripts/dev-start.sh proj${NC} # 项目服务" echo -e " ${GREEN}./scripts/dev-start.sh frontend${NC} # 前端服务" echo -e "${BLUE}==========================================${NC}" echo "" } main