#!/usr/bin/env bash # Stop a run started by launch_run.sh, by PID file — never by pattern match. # scripts/stop_run.sh set -euo pipefail cd "$(dirname "$0")/.." RUN_NAME="${1:?usage: stop_run.sh }" PIDFILE="runs/${RUN_NAME}.pid" [ -f "$PIDFILE" ] || { echo "no pidfile ${PIDFILE}" >&2; exit 1; } PID="$(cat "$PIDFILE")" if kill -0 "$PID" 2>/dev/null; then kill "$PID" for _ in $(seq 20); do kill -0 "$PID" 2>/dev/null || break sleep 1 done kill -0 "$PID" 2>/dev/null && kill -9 "$PID" || true echo "stopped ${RUN_NAME} (pid ${PID})" else echo "${RUN_NAME} (pid ${PID}) not running" fi rm -f "$PIDFILE"