在 Bash 中终止 ROS 2 节点可以通过多种方法实现。以下是几种常用的方法:
ros2 node list
和 ros2 node kill
ros2 node kill
命令,后跟要终止的节点名称。例如,要终止名为 /my_node
的节点:
ros2 node kill /my_node
如果节点成功终止,终端会显示类似如下的消息:
[ros2cli.node.kill] Killing node '/my_node' (PID: 12345)pkill
或 kill
命令如果你知道节点的进程 ID (PID),可以直接使用 kill
命令终止节点:
my_node
的进程信息,找到对应的 PID。-9
强制终止:
kill -9 <PID>ros2 run
启动的节点如果你是通过 ros2 run
命令启动的节点,可以使用 Ctrl+C
在终端中终止该节点。打开一个新的终端窗口,运行:
ros2 run package_name node_executable
然后,在该终端中按 Ctrl+C
即可终止节点。
如果需要一次性终止所有 ROS 2 节点,可以使用以下命令:
ros2 node list | awk '{print $1}' | grep -v '^/' | xargs -r ros2 node kill
注意: 该方法会尝试终止所有节点,请确保这是你想要的操作,以免意外终止重要节点。
systemctl
(如果节点作为服务运行)如果 ROS 2 节点是作为系统服务运行的,可以使用 systemctl
来管理它们:
根据你的具体需求和节点的启动方式,选择最适合的方法来终止 ROS 2 节点。通常,使用 ros2 node kill
是最直接和安全的方式。