| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- #!/bin/bash
- # 生产环境服务状态查看脚本
- # 用于查看 FastAPI 后端服务的运行状态
- # 获取脚本所在目录
- SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
- # 颜色输出
- GREEN='\033[0;32m'
- YELLOW='\033[1;33m'
- RED='\033[0;31m'
- BLUE='\033[0;34m'
- NC='\033[0m' # No Color
- echo -e "${BLUE}📊 Lyrria 后端服务状态${NC}"
- echo "=================================="
- echo ""
- PID_FILE="$SCRIPT_DIR/backend.pid"
- if [ -f "$PID_FILE" ]; then
- PID=$(cat "$PID_FILE")
- if ps -p "$PID" > /dev/null 2>&1; then
- echo -e "${GREEN}✅ 服务运行中${NC}"
- echo " PID: $PID"
- ps -p "$PID" -o pid,etime,cmd --no-headers | awk '{print " 运行时间: " $2}'
-
- # 显示端口占用情况
- PORT_INFO=$(lsof -i :8000 -P -n 2>/dev/null | grep LISTEN || true)
- if [ -n "$PORT_INFO" ]; then
- echo " 端口 8000: 已监听"
- else
- echo -e " ${YELLOW}端口 8000: 未监听${NC}"
- fi
- else
- echo -e "${RED}❌ 服务未运行 (PID 文件存在但进程不存在)${NC}"
- fi
- else
- # 尝试通过进程名查找
- PIDS=$(pgrep -f "uvicorn main:app" || true)
- if [ -n "$PIDS" ]; then
- echo -e "${YELLOW}⚠️ 服务运行中 (但未找到 PID 文件)${NC}"
- echo " PIDs: $PIDS"
- else
- echo -e "${RED}❌ 服务未运行${NC}"
- fi
- fi
- echo ""
- # 显示日志文件信息
- if [ -f "$SCRIPT_DIR/backend_nohup.log" ]; then
- LOG_SIZE=$(ls -lh "$SCRIPT_DIR/backend_nohup.log" | awk '{print $5}')
- LOG_TIME=$(stat -f "%Sm" -t "%Y-%m-%d %H:%M:%S" "$SCRIPT_DIR/backend_nohup.log" 2>/dev/null || stat -c "%y" "$SCRIPT_DIR/backend_nohup.log" 2>/dev/null | cut -d. -f1)
- echo " 后台日志: backend_nohup.log ($LOG_SIZE, 最后更新: $LOG_TIME)"
- fi
- if [ -d "$SCRIPT_DIR/logs" ]; then
- LOG_COUNT=$(ls -1 "$SCRIPT_DIR/logs"/*.log 2>/dev/null | wc -l | tr -d ' ')
- if [ "$LOG_COUNT" -gt 0 ]; then
- echo " 应用日志: logs/ 目录 ($LOG_COUNT 个日志文件)"
- fi
- fi
- echo ""
- echo "=================================="
- echo -e "${BLUE}💡 提示:${NC}"
- echo " 启动服务: ./start_prod.sh"
- echo " 停止服务: ./stop_prod.sh"
- echo " 查看日志: tail -f backend_nohup.log"
- echo " 查看应用日志: tail -f logs/request_*.log"
|