feat: add stop_all.sh to shutdown all AGV processes
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
#!/bin/bash
|
||||
# stop_all.sh - 关闭 AGV 拍摄系统所有相关进程
|
||||
|
||||
echo "正在停止 AGV 系统..."
|
||||
|
||||
# 1. 关闭 Flask 主程序
|
||||
echo "[1/3] 关闭 Flask 服务..."
|
||||
pkill -f "python3 app.py" 2>/dev/null
|
||||
sleep 1
|
||||
|
||||
# 2. 关闭 ROS2 bringup(杀掉整个 start.sh 及其子进程)
|
||||
echo "[2/3] 关闭 ROS2 bringup..."
|
||||
# 用 pkill 杀掉 agv_pro_bringup 相关进程
|
||||
pkill -f "agv_pro_bringup" 2>/dev/null
|
||||
pkill -f "agv_pro_navigation2" 2>/dev/null
|
||||
# 如果 bringup 是由 start.sh 启动的,杀掉 start.sh 进程树
|
||||
pkill -f "start.sh" 2>/dev/null
|
||||
pkill -f "bringup" 2>/dev/null
|
||||
sleep 1
|
||||
|
||||
# 3. 清理 ROS2 daemon(防止残留)
|
||||
echo "[3/3] 清理 ROS2 daemon..."
|
||||
source /opt/ros/humble/setup.bash 2>/dev/null
|
||||
ros2 daemon stop 2>/dev/null || true
|
||||
|
||||
# 确保所有相关进程都已停止
|
||||
sleep 1
|
||||
remaining=$(ps aux | grep -E "python3 app.py|agv_pro_bringup|agv_pro_navigation2|navigation2" | grep -v grep | wc -l)
|
||||
if [ "$remaining" -eq 0 ]; then
|
||||
echo "✅ 所有进程已关闭"
|
||||
else
|
||||
echo "⚠️ 仍有 $remaining 个进程残留,已强制终止"
|
||||
pkill -9 -f "python3 app.py" 2>/dev/null
|
||||
pkill -9 -f "agv_pro_bringup" 2>/dev/null
|
||||
pkill -9 -f "agv_pro_navigation2" 2>/dev/null
|
||||
fi
|
||||
|
||||
echo "停止完成"
|
||||
Reference in New Issue
Block a user