#!/usr/bin/env bash set -euo pipefail root="$(cd "$(dirname "$0")/.." && pwd)" pidfile="$root/logs/camera.pid" [[ -f "$pidfile" ]] || { echo 'Not running'; exit 0; } pid=$(cat "$pidfile") if [[ "$pid" =~ ^[0-9]+$ ]] && kill -0 "$pid" 2>/dev/null; then grep -zFq "$root/run_camera.py" "/proc/$pid/cmdline" || { echo 'PID belongs to another process; refusing to stop'; exit 1; } kill -TERM "$pid" for _ in {1..30}; do kill -0 "$pid" 2>/dev/null || break; sleep .2; done fi rm -f "$pidfile" echo 'Stop requested'