これはまさにDBusが解決する問題です。別のプロセスからメソッドを呼び出すことができます。
私はDBusを使用してHello Worldサーバーを作成することについて質問しました。Register a "Hello World" DBus service, object and method using Python。
import gobject
import dbus
import dbus.service
from dbus.mainloop.glib import DBusGMainLoop
DBusGMainLoop(set_as_default=True)
OPATH = "/com/example/HelloWorld"
IFACE = "com.example.HelloWorld"
BUS_NAME = "com.example.HelloWorld"
class Example(dbus.service.Object):
def __init__(self):
bus = dbus.SessionBus()
bus.request_name(BUS_NAME)
bus_name = dbus.service.BusName(BUS_NAME, bus=bus)
dbus.service.Object.__init__(self, bus_name, OPATH)
@dbus.service.method(dbus_interface=IFACE + ".SayHello",
in_signature="", out_signature="")
def SayHello(self):
print "hello, world"
if __name__ == "__main__":
a = Example()
loop = gobject.MainLoop()
loop.run()
そして、あなたはそれを呼び出すためにdbus-send
を使用することができます。
これは、サーバー用のコードがどのように見えるかです。
実行するようスクリプトに依頼してください。 –
@sashoalm:申し訳ありませんが、コメントはあまりにも重大なようです。 –
OK、ごめんなさい。あなたは親切にExaBGP_server.pyの実際のコードを提供できますか?また、「メソッドを呼び出す」方法の例を提供できますか?それを**どこから呼び出すのですか? – sashoalm