机器人操作系统(ROS),ROSOUT泄漏文件描述符

时间:2016-12-19 12:13:24

标签: linux ros

为什么rosout节点花费超过一千个文件描述符。有lsof -p <pid of rosout>,近千个FD“无法识别协议”,任何解决方案?

enter image description here

1 个答案:

答案 0 :(得分:1)

问题是由异常关闭的ros节点引起的。

我测试了一个非常简单的代码片段:

import rospy
import rosnode
import time

if __name__=="__main__":
    rospy.init_node("test")
    rospy.signal_shutdown("an exception")

我发现每次执行代码时,都会创建文件描述符的泄漏,因此我假设原因是节点在节点与&#34; rosout&#34;之间的套接字连接之前关闭。节点完成了。以下代码(可能有点棘手)修复了上述错误:

import rospy
import rosnode
import time

if __name__=="__main__":
    rospy.init_node("test")
    sleep(1)
    rospy.signal_shutdown("an exception")