45 lines
945 B
Bash
45 lines
945 B
Bash
#!/usr/bin/env bash
|
|
# Ubuntu/Linux: terminate any process whose command line contains "AIDriverEEBackend".
|
|
set -euo pipefail
|
|
|
|
PATTERN="AIDriverEEBackend"
|
|
|
|
# Exclude this shell and its parent — the script filename contains the same substring.
|
|
list_target_pids() {
|
|
local out="" c
|
|
for c in $(pgrep -f "$PATTERN" 2>/dev/null || true); do
|
|
if [[ "$c" != "$$" && "$c" != "$PPID" ]]; then
|
|
out="${out:+$out }$c"
|
|
fi
|
|
done
|
|
echo "$out"
|
|
}
|
|
|
|
pids=$(list_target_pids)
|
|
|
|
if [[ -z "$pids" ]]; then
|
|
echo "No process found matching: $PATTERN"
|
|
exit 0
|
|
fi
|
|
|
|
echo "Found PID(s): $pids"
|
|
echo "Sending SIGTERM..."
|
|
kill -TERM $pids 2>/dev/null || true
|
|
|
|
sleep 2
|
|
|
|
still=$(list_target_pids)
|
|
if [[ -n "$still" ]]; then
|
|
echo "Still running, sending SIGKILL: $still"
|
|
kill -KILL $still 2>/dev/null || true
|
|
fi
|
|
|
|
sleep 1
|
|
left=$(list_target_pids)
|
|
if [[ -n "$left" ]]; then
|
|
echo "Warning: process(es) still present: $left" >&2
|
|
exit 1
|
|
fi
|
|
|
|
echo "Done."
|