run.sh 690 B

123456789101112131415161718192021222324252627
  1. #!/usr/bin/env bash
  2. set -euo pipefail
  3. PORT=${PORT:-8505}
  4. APP_MODULE=${APP_MODULE:-main: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. nohup "$UVICORN_BIN" "$APP_MODULE" --host 0.0.0.0 --port "$PORT" > "$LOGFILE" 2>&1 &
  21. echo $! > "$PIDFILE"
  22. echo "Uvicorn started on port $PORT (PID $(cat "$PIDFILE"))"