#!/bin/bash # GAT-LSTM TMP预测模型 API 服务状态查询脚本 # 使用方法: bash status.sh set -e SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" PID_FILE="$SCRIPT_DIR/api.pid" LOG_DIR="$SCRIPT_DIR/logs" LOG_FILE="$LOG_DIR/api.log" echo "[服务状态] GAT-LSTM TMP预测模型 API 服务状态" echo "==========================================" # 检查PID文件是否存在 if [ ! -f "$PID_FILE" ]; then echo "状态: [未运行]" echo "PID文件不存在" exit 0 fi # 读取PID PID=$(cat "$PID_FILE") # 检查进程是否存在 if ! ps -p $PID > /dev/null 2>&1; then echo "状态: [未运行]" echo "PID文件存在但进程不存在 (可能异常退出)" echo "建议: 运行 bash stop.sh 清理,然后 bash start.sh 重新启动" exit 0 fi # 进程存在,显示详细信息 echo "状态: [运行中]" echo "PID: $PID" echo "工作目录: $SCRIPT_DIR" echo "" # 显示进程信息 echo "[进程信息]" ps -p $PID -o pid,ppid,%cpu,%mem,etime,command echo "" echo "[文件状态]" echo " 配置文件: $SCRIPT_DIR/config.yaml" if [ -f "$SCRIPT_DIR/config.yaml" ]; then echo " [存在]" else echo " [不存在]" fi echo " 日志文件: $LOG_FILE" if [ -f "$LOG_FILE" ]; then LOG_SIZE=$(du -h "$LOG_FILE" | cut -f1) LOG_LINES=$(wc -l < "$LOG_FILE") echo " [存在] (大小: $LOG_SIZE, 行数: $LOG_LINES)" else echo " [不存在]" fi echo "" echo "[服务端点]" echo " API文档: http://localhost:7980/docs" echo " Swagger UI: http://localhost:7980/docs" echo " ReDoc: http://localhost:7980/redoc" echo " 健康检查: http://localhost:7980/" echo " 测试接口: http://localhost:7980/api/v1/process_model/test_double_membrance_from_file" echo "" echo "[管理命令]" echo " 查看日志: tail -f $LOG_FILE" echo " 最近10条日志: tail -n 10 $LOG_FILE" echo " 停止服务: bash stop.sh" echo " 重启服务: bash stop.sh && bash start.sh" # 如果日志文件存在,显示最后几行 if [ -f "$LOG_FILE" ]; then echo "" echo "[最近5条日志]" echo "----------------------------------------" tail -n 5 "$LOG_FILE" echo "----------------------------------------" fi echo "" echo "=========================================="