run.sh 864 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. #!/usr/bin/env bash
  2. set -euo pipefail
  3. SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
  4. cd "$SCRIPT_DIR"
  5. if [[ -f .env ]]; then
  6. set -a
  7. # shellcheck source=/dev/null
  8. source .env
  9. set +a
  10. fi
  11. if [[ -f .venv/bin/activate ]]; then
  12. # shellcheck source=/dev/null
  13. source .venv/bin/activate
  14. fi
  15. LOG_DIR="logs"
  16. mkdir -p "$LOG_DIR"
  17. PID_FILE="$LOG_DIR/server.pid"
  18. LOG_FILE="$LOG_DIR/server.log"
  19. if [[ -f "server.pid" ]]; then
  20. rm -f "server.pid"
  21. fi
  22. if [[ -f "$PID_FILE" ]]; then
  23. PID=$(cat "$PID_FILE")
  24. if kill -0 "$PID" >/dev/null 2>&1; then
  25. echo "Server already running (PID $PID)."
  26. exit 1
  27. else
  28. echo "Stale PID file, removing."
  29. rm -f "$PID_FILE"
  30. fi
  31. fi
  32. nohup python3 -m uvicorn server_fastmcp:app --host 0.0.0.0 --port 8501 >"$LOG_FILE" 2>&1 &
  33. PID=$!
  34. echo "$PID" >"$PID_FILE"
  35. echo "Server started (PID $PID). Logs: $LOG_FILE"