run.sh 797 B

1234567891011121314151617181920212223242526272829303132333435363738
  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="server.pid"
  18. LOG_FILE="$LOG_DIR/server.log"
  19. if [[ -f "$PID_FILE" ]]; then
  20. PID=$(cat "$PID_FILE")
  21. if kill -0 "$PID" >/dev/null 2>&1; then
  22. echo "Server already running (PID $PID)."
  23. exit 1
  24. else
  25. echo "Stale PID file, removing."
  26. rm -f "$PID_FILE"
  27. fi
  28. fi
  29. nohup python3 -m uvicorn virtuoso_mcp:app --host 0.0.0.0 --port 8501 >"$LOG_FILE" 2>&1 &
  30. PID=$!
  31. echo "$PID" >"$PID_FILE"
  32. echo "Server started (PID $PID). Logs: $LOG_FILE"