run.sh 800 B

123456789101112131415161718192021222324252627282930
  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:-logs/uvicorn.log}
  6. PIDFILE=${PIDFILE:-logs/server.pid}
  7. mkdir -p "$(dirname "$LOGFILE")"
  8. mkdir -p "$(dirname "$PIDFILE")"
  9. if [ -f "$PIDFILE" ] && ps -p "$(cat "$PIDFILE" 2>/dev/null)" > /dev/null 2>&1; then
  10. echo "Server already running (PID $(cat "$PIDFILE"))"
  11. exit 0
  12. fi
  13. UVICORN_BIN="${UVICORN_BIN:-}"
  14. if [ -z "$UVICORN_BIN" ]; then
  15. if [ -x ".venv/bin/uvicorn" ]; then
  16. UVICORN_BIN=".venv/bin/uvicorn"
  17. else
  18. UVICORN_BIN="uvicorn"
  19. fi
  20. fi
  21. export PYTHONPATH="$(pwd):${PYTHONPATH:-}"
  22. nohup "$UVICORN_BIN" "$APP_MODULE" --host 0.0.0.0 --port "$PORT" > "$LOGFILE" 2>&1 &
  23. echo $! > "$PIDFILE"
  24. echo "Uvicorn started on port $PORT (PID $(cat "$PIDFILE"))"