start.sh 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. #!/bin/bash
  2. # GAT-LSTM TMP预测模型 API 服务启动脚本
  3. # 使用方法: bash start.sh [dev|prod]
  4. set -e
  5. # 默认配置
  6. MODE=${1:-prod}
  7. SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
  8. LOG_DIR="$SCRIPT_DIR/logs"
  9. LOG_FILE="$LOG_DIR/api.log"
  10. PID_FILE="$SCRIPT_DIR/api.pid"
  11. echo "[启动] 启动GAT-LSTM TMP预测模型 API 服务..."
  12. # 创建日志目录
  13. mkdir -p "$LOG_DIR"
  14. # 检查是否已经在运行
  15. if [ -f "$PID_FILE" ]; then
  16. PID=$(cat "$PID_FILE")
  17. if ps -p $PID > /dev/null 2>&1; then
  18. echo "[警告] 服务已经在运行 (PID: $PID)"
  19. echo " 如需重启,请先运行: bash stop.sh"
  20. exit 1
  21. else
  22. echo "[清理] 清理旧的PID文件"
  23. rm -f "$PID_FILE"
  24. fi
  25. fi
  26. # 根据模式设置环境变量
  27. if [ "$MODE" = "dev" ]; then
  28. echo "[开发模式] 启动开发模式 (详细日志)"
  29. export LOG_LEVEL=INFO
  30. export DETAILED_LOGS=true
  31. LOG_FILE="$LOG_DIR/api_debug.log"
  32. else
  33. echo "[生产模式] 启动生产模式 (精简日志)"
  34. export LOG_LEVEL=INFO
  35. export DETAILED_LOGS=false
  36. fi
  37. # 启动服务
  38. echo "[启动服务] 启动服务..."
  39. cd "$SCRIPT_DIR"
  40. nohup python api_main.py > "$LOG_FILE" 2>&1 &
  41. PID=$!
  42. # 保存PID
  43. echo $PID > "$PID_FILE"
  44. # 等待服务启动
  45. echo "[等待] 等待服务启动..."
  46. sleep 3
  47. # 检查服务是否启动成功
  48. if ps -p $PID > /dev/null 2>&1; then
  49. echo "[成功] 服务启动成功!"
  50. echo " PID: $PID"
  51. echo " 工作目录: $SCRIPT_DIR"
  52. echo " 日志文件: $LOG_FILE"
  53. echo " API文档: http://localhost:7980/docs"
  54. echo " 测试接口: http://localhost:7980/api/v1/process_model/test_double_membrance_from_file"
  55. echo ""
  56. echo "[管理命令]"
  57. echo " 查看日志: tail -f $LOG_FILE"
  58. echo " 停止服务: bash stop.sh"
  59. echo " 查看状态: bash status.sh"
  60. else
  61. echo "[失败] 服务启动失败!"
  62. echo " 请检查日志文件: $LOG_FILE"
  63. rm -f "$PID_FILE"
  64. exit 1
  65. fi