【问题标题】:Robot Operating System(ROS), ROSOUT leak file descriptors机器人操作系统(ROS),ROSOUT泄漏文件描述符
【发布时间】:2016-12-19 12:13:24
【问题描述】:

为什么rosout节点要花费一千多个文件描述符。lsof -p <pid of rosout>,近千个FD“无法识别协议”,有什么解决办法吗?

【问题讨论】:

    标签: linux ros


    【解决方案1】:

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

    我测试了一个很简单的代码sn-p:

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

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

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

    【讨论】:

      猜你喜欢
      • 2020-01-05
      • 1970-01-01
      • 2015-09-23
      • 1970-01-01
      • 2012-09-21
      • 1970-01-01
      • 2022-11-05
      • 2011-01-15
      • 2014-09-20
      相关资源
      最近更新 更多