#!/bin/bash # 生产环境状态检查脚本 # 用于检查记忆总结服务的运行状态 set -e # 获取脚本所在目录 SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" cd "$SCRIPT_DIR" # 颜色输出 GREEN='\033[0;32m' YELLOW='\033[1;33m' RED='\033[0;31m' BLUE='\033[0;34m' NC='\033[0m' # No Color PID_FILE="$SCRIPT_DIR/summarize_memory.pid" echo -e "${BLUE}📊 记忆总结服务状态检查${NC}" echo "" # 检查PID文件 if [ -f "$PID_FILE" ]; then PID=$(cat "$PID_FILE") echo -e "PID文件: ${GREEN}$PID_FILE${NC}" echo -e "PID: ${GREEN}$PID${NC}" # 检查进程是否存在 if ps -p "$PID" > /dev/null 2>&1; then echo -e "进程状态: ${GREEN}运行中${NC}" # 显示进程信息 echo "" echo -e "${BLUE}进程信息:${NC}" ps -p "$PID" -o pid,ppid,cmd,etime,pcpu,pmem # 显示日志文件大小 echo "" echo -e "${BLUE}日志文件:${NC}" if [ -f "logs/summarize_memory.log" ]; then LOG_SIZE=$(du -h "logs/summarize_memory.log" | cut -f1) echo -e " 正常日志: ${GREEN}logs/summarize_memory.log${NC} (${LOG_SIZE})" else echo -e " 正常日志: ${YELLOW}不存在${NC}" fi if [ -f "logs/summarize_memory_error.log" ]; then ERROR_LOG_SIZE=$(du -h "logs/summarize_memory_error.log" | cut -f1) ERROR_LINES=$(wc -l < "logs/summarize_memory_error.log" 2>/dev/null || echo "0") echo -e " 错误日志: ${GREEN}logs/summarize_memory_error.log${NC} (${ERROR_LOG_SIZE}, ${ERROR_LINES} 行)" else echo -e " 错误日志: ${GREEN}不存在(无错误)${NC}" fi if [ -f "summarize_memory_nohup.log" ]; then NOHUP_SIZE=$(du -h "summarize_memory_nohup.log" | cut -f1) echo -e " 后台日志: ${GREEN}summarize_memory_nohup.log${NC} (${NOHUP_SIZE})" fi else echo -e "进程状态: ${RED}未运行(PID文件存在但进程不存在)${NC}" echo -e "${YELLOW}提示: 可以删除 PID 文件: rm $PID_FILE${NC}" fi else echo -e "PID文件: ${YELLOW}不存在${NC}" # 尝试通过进程名查找 PID=$(pgrep -f "summarize_memory.py" | head -n 1) if [ -n "$PID" ]; then echo -e "进程状态: ${GREEN}运行中(通过进程名找到,PID: $PID)${NC}" echo "" echo -e "${BLUE}进程信息:${NC}" ps -p "$PID" -o pid,ppid,cmd,etime,pcpu,pmem else echo -e "进程状态: ${RED}未运行${NC}" fi fi echo ""