一个shell脚本运行多个launch文件,怎么分别进行停止

1.shell脚本运行多个launch文件

#!/bin/bash

# 定义函数,用于运行第一个launch文件
function launch_gemini2 {
    # echo "Running launch_gemini2..."
    cd /绝对路径
    source ./devel/setup.bash
    roslaunch orbbec_camera gemini2.launch
}

# 定义函数,用于运行第二个launch文件
function launch_lcm_xv2up {
    # echo "Running launch_line_follow..."
    cd /绝对路径
    source ./devel/setup.bash
    rosrun vel_trans lcm_xv2up
}

# 定义函数,用于运行第三个launch文件
function launch_line_follow {
    # echo "Running launch_line_follow..."
    cd /绝对路径
    source ./devel/setup.bash
    roslaunch robot_vision line_follow.launch
}

# 在后台运行第一个launch文件
launch_gemini2 &
# gnome-terminal -- bash -c "source /home/zyq/zyq_shel/start_both.sh; launch_gemini2; read -p 'Press Enter to continue...'"

# 等待一段时间(可选)
sleep 5

# 在后台运行第二个launch文件
launch_lcm_xv2up &
# gnome-terminal -- bash -c "source /home/zyq/zyq_shel/start_both.sh; launch_gemini2; read -p 'Press Enter to continue...'"

# 等待一段时间(可选)
sleep 5

# 在后台运行第三个launch文件
launch_line_follow &
# gnome-terminal -- bash -c "source /home/zyq/zyq_shell/start_both.sh; launch_line_follow; read -p 'Press Enter to continue...'"

2.停止某个launch文件

法一:

# 直接停止运行gemini2.launch
pkill -f "roslaunch.*gemini2.launch"
pkill -f "rosrun vel_trans lcm_xv2up"
pkill -f "roslaunch.*line_follow.launch"

请注意,使用pkill命令终止roslaunch进程会直接停止整个launch文件运行,包括其中的所有节点。如果你需要在终止前进行数据保存或清理工作,请确保在执行pkill命令之前完成这些操作。

法二:

# 通过进程名称查找并终止roslaunch进程
pgrep -f "roslaunch orbbec_camera gemini2.launch" | xargs kill
pgrep -f "rosrun vel_trans lcm_xv2up" | xargs kill
pgrep -f "roslaunch robot_vision line_follow.launch" | xargs kill

通过pgrep -f "roslaunch orbbec_camera gemini2.launch" | xargs kill命令可以关闭一个launch文件启动的多个ROS节点。

当你运行roslaunch orbbec_camera gemini2.launch时,该launch文件会启动一系列的ROS节点,每个节点都在ROS中以自己的进程运行。这些节点会继续运行,直到它们被终止。

使用pgrep -f "roslaunch orbbec_camera gemini2.launch"命令,可以查找与指定launch文件相应的进程,并返回这些进程的ID。然后,xargs kill命令将这些进程ID传递给kill命令,从而终止这些进程,即关闭了launch文件启动的多个ROS节点。

这样,pgrepxargs kill命令的组合允许你一次性关闭与特定launch文件相关联的所有ROS节点,从而停止该launch文件的运行。请注意,这将导致所有这些节点同时停止运行,所以在使用该命令之前,请确保你不需要保存任何数据或执行其他清理操作。

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值