我希望有人可以帮助...
所以......我正在编写一个multiprocessing
基于python的netsnmp
轮询器(我在收集数据后做了很多数据结构操作,所以开销比正常情况下值得threading
)。我找不到完整的 python 接口(具有不错的 OID 操作、bulkwalk 等),所以我决定纠正我自己的ctypes
绑定。我snmp_sess_synch_response()
用来实际执行查询。
当我运行单个线程时,一切正常(我可以查询并获取结果)。但是当我从继承的Process
实例中调用我的(python)netsnmp 类时;当它到达时snmp_sess_synch_response()
,线程停止,然后返回返回码“2”并snmp_errstring()
返回“未知错误”。
我能找到的唯一信息是我应该使用来自http://net-snmp.sourceforge.net/docs/README.thread.html的单一 API,并且初始 MIB 构建应该在线程之前。我正在使用单一 API,并且在生成我的工人之前我正在构建 MIB。
有谁知道我应该如何进行调试?ctypes如何处理多线程?为什么使用multiprocessing
会导致我工作的单线程轮询器像这样停止?
我在 redhat 6 64 位和 python 2.6.6 上使用 net-snmp 5.5-41.el6。