anlongsun at gmail.com
Wed Jan 24 09:17:19 PST 2007
We used dbus for a long time.She is really great!
Now we have a special request:
Application A want to call the service method in application B.
There are 2 conditions:
1. B already exists, it is easy for A, A just send dbus message.
2. B not exists. So A will launch B, and then send dbus message.
I know auto start function of activation has the similar function.
But now, I do not want to use .service file to tell dbus deamon to
start application B. It is more comfortable or maybe I have to launch
application B by myself (by application A).
I have use dbus_message_set_auto_activation (msg, TRUE);
but after A launch B, B can not get the dbus message.
I have read nearly all the mails about activation in this mail list,
but can not solve the problem.
When dbus daemon does not have the .service file, the dbus message will not
be queued if dbus daemon fail to launch application B.
But from this mail, I think the dbus message will be queued.
How can I do that : launch B application by myself instead of by dbus
daemon and still queued the message which can be gotten by B after
On Fri, 2004-10-01 at 13:10 +0200, Waldo Bastian wrote:
> How does automatic service activation work exactly? If a message for an
> unregistered service is received, the service is started if it is known,
Only optionally, at the moment. You can send an "activate service"
message and ask that messages to the service be queued up until it's
> Will the message be queued until the service has registered itself with dbus?
> Does dbus handle messages in the meantime?
Yes, messages to other services are still handled - dbus-daemon never
> What happens if a second message for the same (still not registered) service
Also queues up. A message queue is kept for the service that's pending
> Is there a way to detect that activation of the service failed?
Yeah, you should get an error reply in that case, and all the queued
messages will also get error replies.
More information about the dbus