Dbus - 故障控制

Dbus - 故障控制

问题描述:

是否有方法告知通过Dbus连接的过程:另一个过程死了?我的意思是错误的过程可以告诉另一个过程他有异常终止。我知道你可以检查错误类型返回,但我想要别的东西。例如,考虑我们有一个等待答案的过程,但我们用CTRL + C来杀死另一个过程。有没有办法通知其他进程..或者你应该等待几秒钟的响应......等Dbus - 故障控制

在低级别:你可以连接到D-Bus守护进程,NameOwnerChanged信号无论何时在公共汽车上声明或公布名称。因此,如果工作进程采用知名名称com.example.Foo,则可以为sender=org.freedesktop.DBus,path=/org/freedesktop/DBus,interface=org.freedesktop.DBus,member=NameOwnerChanged,type=signal,arg0=com.example.Foo添加匹配规则。 (match rulearg0部分阻止您通知除您所关心的服务以外的其他服务。)

更高级别:如果您正在等待方法调用的结果,那么您的绑定(例如QDBus或GDBus )应该打电话给你的回调,并告诉你这是发生了什么。但是您也可以使用更高级的API来观看NameOwnerChanged。对于GDBus,请参阅g_bus_watch功能系列。