可以使用各种实现D-Bus对消息进行排队并推迟传递,直到接收者/订阅者也连接/接收它们为止。这些消息在某处内部排队(在大多数实现中都是Unix域套接字,我认为)。
有没有办法配置D-Bus,以便在重新启动D-Bus守护程序或重新启动运行总线的主机时,这些排队的消息会持续存在?
例如,如果我发布了一堆消息,并且当dbus守护程序关闭或系统重新启动时,消费者仍在浏览消息队列,则消息应该持续存在并且能够在系统重新传递时回来了。
如果有额外的设置/手动重新配置dbus需要连接到持久性消息存储,那很好。
如果这是可能的(并且可能不是这样),我宁愿避免让其他服务连接到dbus来执行持久性。如果这是获得消息持久性的唯一方法,那很好,但是如果可以的话,我想尽可能简化设置。