14 lines
516 B
Bash
Executable File
14 lines
516 B
Bash
Executable File
#!/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'
|