killserver.sh 714 B

12345678910111213141516171819202122232425262728293031
  1. #!/usr/bin/env bash
  2. set -euo pipefail
  3. PIDFILE=${PIDFILE:-server.pid}
  4. stop_pid() {
  5. local pid="$1"
  6. if [ -n "$pid" ] && ps -p "$pid" > /dev/null 2>&1; then
  7. kill "$pid" 2>/dev/null || true
  8. sleep 1
  9. if ps -p "$pid" > /dev/null 2>&1; then
  10. kill -9 "$pid" 2>/dev/null || true
  11. fi
  12. echo "Stopped stale process $pid"
  13. fi
  14. }
  15. if [ -f "$PIDFILE" ]; then
  16. PID=$(cat "$PIDFILE" 2>/dev/null || true)
  17. stop_pid "$PID"
  18. rm -f "$PIDFILE"
  19. fi
  20. # Sweep up any stale listeners started from this project.
  21. PIDS=$(pgrep -f 'uvicorn .*main:app|python.*server.py|uvicorn .*server:app' || true)
  22. if [ -n "$PIDS" ]; then
  23. for pid in $PIDS; do
  24. stop_pid "$pid"
  25. done
  26. else
  27. echo "No stale processes found"
  28. fi