update
This commit is contained in:
157
status.sh
Normal file
157
status.sh
Normal file
@@ -0,0 +1,157 @@
|
||||
#!/bin/bash
|
||||
# status.sh - 查看服务运行状态
|
||||
# 支持: Vite开发模式 或 预构建静态服务
|
||||
|
||||
set -e
|
||||
|
||||
LOG_DIR="logs"
|
||||
PID_FILE_API="$LOG_DIR/api.pid"
|
||||
PID_FILE_FRONTEND="$LOG_DIR/frontend.pid"
|
||||
|
||||
# 颜色定义
|
||||
RED='\033[0;31m'
|
||||
GREEN='\033[0;32m'
|
||||
YELLOW='\033[1;33m'
|
||||
CYAN='\033[0;36m'
|
||||
NC='\033[0m'
|
||||
|
||||
# 加载配置
|
||||
if [ -f ".env" ]; then
|
||||
export $(grep -v '^#' .env | grep -E '^(API_PORT|FRONTEND_PORT|FRONTEND_MODE)' | xargs 2>/dev/null || true)
|
||||
fi
|
||||
|
||||
API_PORT=${API_PORT:-8000}
|
||||
FRONTEND_PORT=${FRONTEND_PORT:-5173}
|
||||
FRONTEND_MODE=${FRONTEND_MODE:-dev}
|
||||
|
||||
echo ""
|
||||
echo -e "${CYAN}========================================${NC}"
|
||||
echo -e "${CYAN} AI+合规智能中枢 - 服务状态${NC}"
|
||||
echo -e "${CYAN}========================================${NC}"
|
||||
echo ""
|
||||
|
||||
# ===== API状态 =====
|
||||
|
||||
echo -e "${YELLOW}API服务:${NC}"
|
||||
|
||||
API_RUNNING=false
|
||||
if [ -f "$PID_FILE_API" ]; then
|
||||
PID=$(cat $PID_FILE_API)
|
||||
if ps -p $PID > /dev/null 2>&1; then
|
||||
API_RUNNING=true
|
||||
echo -e " 状态: ${GREEN}运行中 ✓${NC}"
|
||||
echo " PID: $PID"
|
||||
|
||||
# 检查端口
|
||||
if command -v curl > /dev/null 2>&1; then
|
||||
HEALTH=$(curl -s http://localhost:$API_PORT/health 2>/dev/null || echo '{"status":"error"}')
|
||||
if echo "$HEALTH" | grep -q "healthy"; then
|
||||
echo -e " 健康检查: ${GREEN}正常 ✓${NC}"
|
||||
else
|
||||
echo -e " 健康检查: ${RED}异常${NC}"
|
||||
fi
|
||||
fi
|
||||
else
|
||||
echo -e " 状态: ${RED}已停止${NC} (PID文件存在但进程不存在)"
|
||||
rm -f $PID_FILE_API
|
||||
fi
|
||||
else
|
||||
# 尝试查找uvicorn进程
|
||||
UVICORN_PID=$(pgrep -f "uvicorn app.main:app" 2>/dev/null || true)
|
||||
if [ -n "$UVICORN_PID" ]; then
|
||||
echo -e " 状态: ${GREEN}运行中 ✓${NC} (无PID文件)"
|
||||
echo " PID: $UVICORN_PID"
|
||||
API_RUNNING=true
|
||||
else
|
||||
echo -e " 状态: ${RED}已停止${NC}"
|
||||
fi
|
||||
fi
|
||||
|
||||
echo " 地址: http://localhost:$API_PORT"
|
||||
echo " 文档: http://localhost:$API_PORT/docs"
|
||||
echo ""
|
||||
|
||||
# ===== 前端状态 =====
|
||||
|
||||
echo -e "${YELLOW}前端服务 (模式: $FRONTEND_MODE):${NC}"
|
||||
|
||||
FRONTEND_RUNNING=false
|
||||
if [ -f "$PID_FILE_FRONTEND" ]; then
|
||||
PID=$(cat $PID_FILE_FRONTEND)
|
||||
if ps -p $PID > /dev/null 2>&1; then
|
||||
FRONTEND_RUNNING=true
|
||||
echo -e " 状态: ${GREEN}运行中 ✓${NC}"
|
||||
echo " PID: $PID"
|
||||
|
||||
# 显示前端模式
|
||||
if [ "$FRONTEND_MODE" = "dev" ]; then
|
||||
echo -e " 模式: ${CYAN}Vite开发模式${NC}"
|
||||
else
|
||||
echo -e " 模式: ${CYAN}预构建静态服务${NC}"
|
||||
fi
|
||||
else
|
||||
echo -e " 状态: ${RED}已停止${NC} (PID文件存在但进程不存在)"
|
||||
rm -f $PID_FILE_FRONTEND
|
||||
fi
|
||||
else
|
||||
# 查找Vite/npm进程
|
||||
VITE_PID=$(pgrep -f "vite" 2>/dev/null || true)
|
||||
HTTP_PID=$(pgrep -f "http.server $FRONTEND_PORT" 2>/dev/null || true)
|
||||
|
||||
if [ -n "$VITE_PID" ]; then
|
||||
echo -e " 状态: ${GREEN}运行中 ✓${NC} (无PID文件)"
|
||||
echo " PID: $VITE_PID (Vite)"
|
||||
FRONTEND_RUNNING=true
|
||||
elif [ -n "$HTTP_PID" ]; then
|
||||
echo -e " 状态: ${GREEN}运行中 ✓${NC} (无PID文件)"
|
||||
echo " PID: $HTTP_PID (静态)"
|
||||
FRONTEND_RUNNING=true
|
||||
else
|
||||
echo -e " 状态: ${RED}已停止${NC}"
|
||||
fi
|
||||
fi
|
||||
|
||||
echo " 地址: http://localhost:$FRONTEND_PORT"
|
||||
echo ""
|
||||
|
||||
# ===== Docker容器状态 =====
|
||||
|
||||
echo -e "${YELLOW}Docker服务:${NC}"
|
||||
|
||||
if command -v docker > /dev/null 2>&1; then
|
||||
CONTAINERS="milvus minio redis postgres"
|
||||
|
||||
for container in $CONTAINERS; do
|
||||
if docker ps --format '{{.Names}}' | grep -q "^${container}$"; then
|
||||
echo -e " $container: ${GREEN}运行中 ✓${NC}"
|
||||
elif docker ps -a --format '{{.Names}}' | grep -q "^${container}$"; then
|
||||
echo -e " $container: ${RED}已停止${NC}"
|
||||
else
|
||||
echo -e " $container: ${YELLOW}不存在${NC}"
|
||||
fi
|
||||
done
|
||||
else
|
||||
echo -e " ${YELLOW}Docker未安装${NC}"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
|
||||
# ===== 总结 =====
|
||||
|
||||
echo -e "${CYAN}========================================${NC}"
|
||||
|
||||
if [ "$API_RUNNING" = true ] && [ "$FRONTEND_RUNNING" = true ]; then
|
||||
echo -e "${GREEN} 所有服务正常运行 ✓${NC}"
|
||||
else
|
||||
if [ "$API_RUNNING" = false ]; then
|
||||
echo -e "${RED} API服务未运行${NC}"
|
||||
fi
|
||||
if [ "$FRONTEND_RUNNING" = false ]; then
|
||||
echo -e "${RED} 前端服务未运行${NC}"
|
||||
fi
|
||||
echo ""
|
||||
echo -e "${YELLOW}启动服务: ./start_all.sh${NC}"
|
||||
fi
|
||||
|
||||
echo -e "${CYAN}========================================${NC}"
|
||||
echo ""
|
||||
Reference in New Issue
Block a user