run.sh 696 B

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