run.sh 757 B

1234567891011121314151617181920212223242526272829
  1. #!/usr/bin/env bash
  2. set -euo pipefail
  3. PORT=${PORT:-8506}
  4. APP_MODULE=${APP_MODULE:-news_mcp.mcp_server_fastmcp:app}
  5. LOGFILE=${LOGFILE:-uvicorn.log}
  6. PIDFILE=${PIDFILE:-server.pid}
  7. mkdir -p "$(dirname "$LOGFILE")"
  8. if [ -f "$PIDFILE" ] && ps -p "$(cat "$PIDFILE" 2>/dev/null)" > /dev/null 2>&1; then
  9. echo "Server already running (PID $(cat "$PIDFILE"))"
  10. exit 0
  11. fi
  12. UVICORN_BIN="${UVICORN_BIN:-}"
  13. if [ -z "$UVICORN_BIN" ]; then
  14. if [ -x ".venv/bin/uvicorn" ]; then
  15. UVICORN_BIN=".venv/bin/uvicorn"
  16. else
  17. UVICORN_BIN="uvicorn"
  18. fi
  19. fi
  20. export PYTHONPATH="$(pwd):${PYTHONPATH:-}"
  21. nohup "$UVICORN_BIN" "$APP_MODULE" --host 0.0.0.0 --port "$PORT" > "$LOGFILE" 2>&1 &
  22. echo $! > "$PIDFILE"
  23. echo "Uvicorn started on port $PORT (PID $(cat "$PIDFILE"))"