在ROS中,节点列表如下
ros节点列表
在ROS中,杀死一个节点如下
rosnode杀死node_name
当我在特定节点上执行kill子命令时,节点列表正在正确更新并且该节点正在关闭。
但我不知道为什么一些进程在关闭后没有在终端上终止,如下所示
我需要再次按 ctrl+c 或 ctrl+z 才能真正在终端上关闭它们。
为什么即使节点关闭,进程(在终端上)也没有终止?
您所看到的是该节点收到关闭请求,并且实际上并未停止,而是试图停止。
rosnode kill something
所做的是将SIGINT
发送到NodeHandle,节点应该做的是解构其类并释放NodeHandle(在正确编写的代码中)
我认为在您的特定节点中发生的情况要么是 SIGINT 处理程序被更改,要么您的 NodeHandle 无法销毁链接到您的 roscpp 库的所有对象,并且需要您按 CTRL+C 以允许升级到更激进的终止
在看不到代码的情况下我能做的就是帮助您:
如果您仍然遇到问题,请尝试重写 SIGINT 信号,这是 ROS-Wiki 的链接,其中包含有关您的问题的详细信息