stoptesting.sh raw
1 #!/bin/bash
2 set -euo pipefail
3
4 # stoptesting.sh - Stop local testing relay and smesh dev server.
5 #
6 # Usage:
7 # scripts/stoptesting.sh # stop processes, keep data
8 # scripts/stoptesting.sh --clean # stop processes and remove all test data
9
10 TESTDIR="/tmp/orly-localtest"
11 PIDDIR="$TESTDIR/pids"
12 CLEAN=false
13
14 if [[ "${1:-}" == "--clean" ]]; then
15 CLEAN=true
16 fi
17
18 stopped=0
19
20 # Stop relay
21 if [[ -f "$PIDDIR/relay.pid" ]]; then
22 RELAY_PID=$(cat "$PIDDIR/relay.pid")
23 if kill -0 "$RELAY_PID" 2>/dev/null; then
24 echo "Stopping relay (PID $RELAY_PID)..."
25 kill -- -"$RELAY_PID" 2>/dev/null || kill "$RELAY_PID" 2>/dev/null || true
26 for i in $(seq 1 10); do
27 if ! kill -0 "$RELAY_PID" 2>/dev/null; then
28 break
29 fi
30 sleep 0.5
31 done
32 if kill -0 "$RELAY_PID" 2>/dev/null; then
33 kill -9 -- -"$RELAY_PID" 2>/dev/null || kill -9 "$RELAY_PID" 2>/dev/null || true
34 fi
35 echo "Relay stopped"
36 stopped=$((stopped + 1))
37 else
38 echo "Relay process $RELAY_PID not running (stale PID file)"
39 fi
40 rm -f "$PIDDIR/relay.pid"
41 fi
42
43 # Stop smesh
44 if [[ -f "$PIDDIR/smesh.pid" ]]; then
45 SMESH_PID=$(cat "$PIDDIR/smesh.pid")
46 if kill -0 "$SMESH_PID" 2>/dev/null; then
47 echo "Stopping smesh (PID $SMESH_PID)..."
48 kill -- -"$SMESH_PID" 2>/dev/null || kill "$SMESH_PID" 2>/dev/null || true
49 for i in $(seq 1 5); do
50 if ! kill -0 "$SMESH_PID" 2>/dev/null; then
51 break
52 fi
53 sleep 0.5
54 done
55 if kill -0 "$SMESH_PID" 2>/dev/null; then
56 kill -9 -- -"$SMESH_PID" 2>/dev/null || kill -9 "$SMESH_PID" 2>/dev/null || true
57 fi
58 echo "Smesh stopped"
59 stopped=$((stopped + 1))
60 else
61 echo "Smesh process $SMESH_PID not running (stale PID file)"
62 fi
63 rm -f "$PIDDIR/smesh.pid"
64 fi
65
66 if [[ $stopped -eq 0 ]]; then
67 echo "No running processes found"
68 fi
69
70 if [[ "$CLEAN" == true ]]; then
71 echo "Removing test data: $TESTDIR"
72 rm -rf "$TESTDIR"
73 echo "Clean complete"
74 else
75 # Clean up empty pids dir
76 rmdir "$PIDDIR" 2>/dev/null || true
77 fi
78
79 echo "Local testing stopped"
80