office_gzweb/run_all_stop.sh

36 lines
1.2 KiB
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
# Stop all processes started by run_all.sh / run_ab.sh style workflow.
ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
echo "[run_all_stop] stopping ROS/Gazebo workflow processes..."
# Launches / nodes
pkill -f "turtlebot3_office_gz.launch.py" 2>/dev/null || true
pkill -f "nav2_bringup navigation_launch.py" 2>/dev/null || true
pkill -f "nav2_bringup bringup_launch.py" 2>/dev/null || true
pkill -f "explore_lite explore.launch.py" 2>/dev/null || true
pkill -f "nav2_map_server map_saver_cli" 2>/dev/null || true
# Gazebo websocket and frontend
pkill -f "${ROOT}/websocket.sdf" 2>/dev/null || true
pkill -f "vite --host 0.0.0.0 --port 5173" 2>/dev/null || true
pkill -f "npm run dev:host" 2>/dev/null || true
# Gazebo processes usually started by ros_gz_sim / gz sim
pkill -f "ros_gz_sim" 2>/dev/null || true
pkill -f "gz sim" 2>/dev/null || true
# Free common ports if still occupied
for port in 5173 9002; do
pids="$(ss -ltnp 2>/dev/null | grep ":${port} " | sed -E 's/.*pid=([0-9]+).*/\1/' | sort -u)"
if [[ -n "${pids}" ]]; then
echo "[run_all_stop] killing processes on port ${port}: ${pids}"
kill ${pids} 2>/dev/null || true
fi
done
echo "[run_all_stop] done."