thread-master/scripts/status-all.sh

50 lines
1.3 KiB
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
BACKEND_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
RUN_DIR="$BACKEND_DIR/.run"
COMPOSE_FILE="$BACKEND_DIR/deploy/docker-compose.yml"
BACKEND_URL="${HAIXUN_BACKEND_URL:-http://127.0.0.1:8890}"
WEB_URL="${HAIXUN_WEB_URL:-http://127.0.0.1:5173}"
check_pid() {
local name="$1"
local file="$RUN_DIR/${name}.pid"
if [[ -f "$file" ]]; then
local pid
pid="$(cat "$file" 2>/dev/null || true)"
if [[ -n "${pid:-}" ]] && kill -0 "$pid" 2>/dev/null; then
echo " $name: running (pid=$pid)"
return 0
fi
fi
echo " $name: stopped"
return 1
}
echo "Haixun dev services"
echo ""
if command -v docker >/dev/null 2>&1 && [[ -f "$COMPOSE_FILE" ]]; then
echo "Docker:"
docker compose -f "$COMPOSE_FILE" ps --format "table {{.Name}}\t{{.Status}}\t{{.Ports}}" 2>/dev/null || echo " (docker compose not running)"
echo ""
fi
echo "Processes:"
check_pid api || true
check_pid web || true
check_pid worker || true
echo ""
echo "Health:"
if curl -fsS "$BACKEND_URL/api/v1/health" >/dev/null 2>&1; then
echo " API health: OK ($BACKEND_URL)"
else
echo " API health: down ($BACKEND_URL)"
fi
if curl -fsS "$WEB_URL" >/dev/null 2>&1; then
echo " Web: OK ($WEB_URL)"
else
echo " Web: down ($WEB_URL)"
fi