2026-03-24 13:30:27 +00:00

38 lines
606 B
Bash
Executable File

#!/bin/bash
set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
THREADS=${1:-4}
RATE=${2:-100}
PIDS=()
cleanup() {
echo
echo "Stopping workers..."
for pid in "${PIDS[@]:-}"; do
if kill -0 "$pid" 2>/dev/null; then
kill "$pid" 2>/dev/null || true
fi
done
wait || true
echo "All workers stopped."
}
trap cleanup SIGINT SIGTERM EXIT
echo "Starting $THREADS workers with RATE=$RATE each..."
for i in $(seq 1 "$THREADS"); do
METRIC="thread_$i"
echo "→ worker $i ($METRIC)"
"$SCRIPT_DIR/worker.sh" "$METRIC" "$RATE" &
PIDS+=("$!")
done
wait