| #!/usr/bin/env bash |
| set -euo pipefail |
|
|
| PORT="${PORT:-7860}" |
| APP_COMMAND="${APP_COMMAND:-.venv/bin/python app.py}" |
|
|
| echo "Resetting Gradio server on port ${PORT}..." |
|
|
| PIDS="$(lsof -tiTCP:"${PORT}" -sTCP:LISTEN || true)" |
| if [[ -n "${PIDS}" ]]; then |
| echo "Stopping existing server process(es): ${PIDS}" |
| kill ${PIDS} |
|
|
| for _ in {1..30}; do |
| if ! lsof -tiTCP:"${PORT}" -sTCP:LISTEN >/dev/null 2>&1; then |
| break |
| fi |
| sleep 0.2 |
| done |
|
|
| if lsof -tiTCP:"${PORT}" -sTCP:LISTEN >/dev/null 2>&1; then |
| echo "Port ${PORT} is still busy after stopping existing process(es)." >&2 |
| exit 1 |
| fi |
| else |
| echo "No existing server found on port ${PORT}." |
| fi |
|
|
| echo "Starting: ${APP_COMMAND}" |
| exec ${APP_COMMAND} |
|
|