我有4个DBUS服务python脚本(a.py,b.py,c.py,d.py)并在' main.py'
中运行它我想合并dbus服务的原因是因为每个进程运行的内存占%。每dbus服务2.0%内存。我将创建15个dbus服务。
main.py
#!/usr/bin/env python
import sys
import gobject
from dbus.mainloop.glib import DBusGMainLoop
listofdbusfilenames = ['a','b','b','d']
def importDbusServices():
for dbusfilename in listofdbusfilenames:
globals()[dbusfilename] = __import__(dbusfilename)
def callservices():
for dbusfilename in listofdbusfilenames:
globals()[dbusfilename +'_var'] = eval(dbusfilename +'.ServiceClass()')
if __name__ == '__main__':
importDbusDervices()
DBusGMainLoop(set_as_default = True)
callservices()
loop = gobject.MainLoop()
loop.run()
a.py希望从b.py获取返回方法
b.py将获得c.py和d.py的返回方法
-a.py
- | b.py
---- | c.py
---- | d.py
问题:
我的dbus服务格式
import dbus
import dbus.service
class ServiceClass(dbus.service.Object):
def __init__(self):
busName = dbus.service.BusName('test.a', bus = dbus.SystemBus())
dbus.service.Object.__init__(self, busName, '/test/a')
@dbus.service.method('test.a')
def aMethod1(self):
#get the b.py method value 'get_dbus_method' here
return #value from b.py method
还有其他方法直接获取方法吗?
提前感谢您的回复并阅读此内容。 :d