status.sh 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. #!/bin/bash
  2. # GAT-LSTM TMP预测模型 API 服务状态查询脚本
  3. # 使用方法: bash status.sh
  4. set -e
  5. SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
  6. PID_FILE="$SCRIPT_DIR/api.pid"
  7. LOG_DIR="$SCRIPT_DIR/logs"
  8. LOG_FILE="$LOG_DIR/api.log"
  9. echo "[服务状态] GAT-LSTM TMP预测模型 API 服务状态"
  10. echo "=========================================="
  11. # 检查PID文件是否存在
  12. if [ ! -f "$PID_FILE" ]; then
  13. echo "状态: [未运行]"
  14. echo "PID文件不存在"
  15. exit 0
  16. fi
  17. # 读取PID
  18. PID=$(cat "$PID_FILE")
  19. # 检查进程是否存在
  20. if ! ps -p $PID > /dev/null 2>&1; then
  21. echo "状态: [未运行]"
  22. echo "PID文件存在但进程不存在 (可能异常退出)"
  23. echo "建议: 运行 bash stop.sh 清理,然后 bash start.sh 重新启动"
  24. exit 0
  25. fi
  26. # 进程存在,显示详细信息
  27. echo "状态: [运行中]"
  28. echo "PID: $PID"
  29. echo "工作目录: $SCRIPT_DIR"
  30. echo ""
  31. # 显示进程信息
  32. echo "[进程信息]"
  33. ps -p $PID -o pid,ppid,%cpu,%mem,etime,command
  34. echo ""
  35. echo "[文件状态]"
  36. echo " 配置文件: $SCRIPT_DIR/config.yaml"
  37. if [ -f "$SCRIPT_DIR/config.yaml" ]; then
  38. echo " [存在]"
  39. else
  40. echo " [不存在]"
  41. fi
  42. echo " 日志文件: $LOG_FILE"
  43. if [ -f "$LOG_FILE" ]; then
  44. LOG_SIZE=$(du -h "$LOG_FILE" | cut -f1)
  45. LOG_LINES=$(wc -l < "$LOG_FILE")
  46. echo " [存在] (大小: $LOG_SIZE, 行数: $LOG_LINES)"
  47. else
  48. echo " [不存在]"
  49. fi
  50. echo ""
  51. echo "[服务端点]"
  52. echo " API文档: http://localhost:7980/docs"
  53. echo " Swagger UI: http://localhost:7980/docs"
  54. echo " ReDoc: http://localhost:7980/redoc"
  55. echo " 健康检查: http://localhost:7980/"
  56. echo " 测试接口: http://localhost:7980/api/v1/process_model/test_double_membrance_from_file"
  57. echo ""
  58. echo "[管理命令]"
  59. echo " 查看日志: tail -f $LOG_FILE"
  60. echo " 最近10条日志: tail -n 10 $LOG_FILE"
  61. echo " 停止服务: bash stop.sh"
  62. echo " 重启服务: bash stop.sh && bash start.sh"
  63. # 如果日志文件存在,显示最后几行
  64. if [ -f "$LOG_FILE" ]; then
  65. echo ""
  66. echo "[最近5条日志]"
  67. echo "----------------------------------------"
  68. tail -n 5 "$LOG_FILE"
  69. echo "----------------------------------------"
  70. fi
  71. echo ""
  72. echo "=========================================="