#!/usr/bin/env bash set -euo pipefail PROJECT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" PID_FILE="$PROJECT_DIR/runtime/service.pid" if [[ ! -f "$PID_FILE" ]]; then echo "Service is not running (PID file not found)." exit 0 fi SERVICE_PID="$(tr -dc '0-9' < "$PID_FILE")" if [[ -z "$SERVICE_PID" ]] || ! kill -0 "$SERVICE_PID" 2>/dev/null; then rm -f "$PID_FILE" echo "Service is not running; stale PID file removed." exit 0 fi kill "$SERVICE_PID" for _ in {1..20}; do if ! kill -0 "$SERVICE_PID" 2>/dev/null; then rm -f "$PID_FILE" echo "Service stopped." exit 0 fi sleep 0.5 done echo "Service did not stop within 10 seconds (PID $SERVICE_PID)." >&2 exit 1