Files
FaRui_Campus_ADS/slave/cleanup_master_autoware.sh
T

76 lines
2.0 KiB
Bash
Executable File

#!/usr/bin/env bash
# Clean leftover master-board Autoware/debug processes.
#
# 用法:
# ./cleanup_master_autoware.sh
#
# 说明:
# 这个脚本用于主板调试后清理残留进程。
# 如果你在同一块板上故意运行从板底盘驱动,不要执行本脚本,
# 因为它会停止 ecar_can/socket_can 相关节点。
set -euo pipefail
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m'
log_info() { echo -e "${GREEN}[INFO]${NC} $*"; }
log_warn() { echo -e "${YELLOW}[WARN]${NC} $*"; }
PATTERNS=(
"run_ecar_master_debug.sh"
"run_preset_route_real_vehicle.sh"
"ros2 launch.*ecar_master"
"ros2 launch.*farui_launch"
"launch_ros_[0-9]+"
"launch_ros"
"component_container"
"component_container_mt"
"timoo_ros"
"pointcloud_process"
"map_hash_generator"
"imu_corrector"
"gyro_bias_validator"
"hipnuc"
"imu_sub"
"rqt_gui"
"rqt_gui_py_node"
"rviz2"
"ecar_can"
"ecar_can_receiver"
"ecar_can_sender"
"socket_can"
"socket_can_receiver"
"socket_can_sender"
)
terminate_patterns() {
local signal="$1"
local pattern
for pattern in "${PATTERNS[@]}"; do
pkill "-${signal}" -f "${pattern}" 2>/dev/null || true
done
}
log_info "Sending TERM to leftover master Autoware processes."
terminate_patterns TERM
sleep 3
if pgrep -f "component_container|component_container_mt|timoo_ros|map_hash_generator|imu_corrector|gyro_bias_validator|ecar_can|socket_can|rviz2|rqt_gui|launch_ros|ecar_can_receiver|ecar_can_sender|socket_can_receiver|socket_can_sender" >/dev/null 2>&1; then
log_warn "Some processes are still alive; sending KILL."
terminate_patterns KILL
sleep 1
fi
log_info "Restarting ROS daemon to refresh node discovery."
ros2 daemon stop >/dev/null 2>&1 || true
ros2 daemon start >/dev/null 2>&1 || true
log_info "Remaining matching processes:"
ps -ef | grep -E 'autoware|component_container|rviz2|timoo|ros2 launch|launch_ros|preset_route|ecar_can|socket_can|imu_corrector|gyro_bias|map_hash|rqt_gui' | grep -v grep || true
log_info "Remaining ROS nodes:"
ros2 node list 2>/dev/null || true