[PATCH] startkde and dbus-launch
Jos van den Oever
jvdoever at gmail.com
Mon Dec 28 11:40:18 GMT 2009
2009/12/27 Thiago Macieira <thiago at kde.org>:
> Em Domingo 27. Dezembro 2009, às 19.16.33, Jos van den Oever escreveu:
>> You can at least remove the comment about autolaunch being broken,
>> since it is not broken. The problem is that when the dbus daemon is
>> not yet running (DBUS_SESSION_BUS_ADDRESS not set), each app trying to
>> talk to the daemon will start a new daemon.
>
> No, they won't.
>From 'man dbus-launch':
If DBUS_SESSION_BUS_ADDRESS is not set for a process that tries to use
D-Bus, by default the process will attempt to invoke dbus-launch with
the --autolaunch option to start up a new session bus or find the
existing bus address on the X display or in a file in ~/.dbus/session-
bus/
Whenever an autolaunch occurs, the application that had to start a new
bus will be in its own little world; it can effectively end up starting
a whole new session if it tries to use a lot of bus services. This can
be suboptimal or even totally broken, depending on the app and what it
tries to do.
So each app that is started in an environment where
DBUS_SESSION_BUS_ADDRESS is not set and where there is no existing bus
on the X display and where there is nothing in ~/.dbus/session-bus/
will be in 'its own little world'. The existing kdestart.cmake fixes
this but starting the dbus daemon and setting
DBUS_SESSION_BUS_ADDRESS before any applications are started. That way
all kde applications starting from kdestart.cmake use the same dbus
daemon.
The change you introduce with the --autolaunch argument is that you
use a global machineid to infer the port of the dbus daemon. This
means that if you run kdestart as the same user on the same machine,
the applications started from either invocation will use the same dbus
daemon.
I do not see a scenario where you would want to run startkde two
times, but your patch would make these two instances use only one dbus
daemon. I really cannot tell if that is desirable or not since I would
not know when to run startkde twice.
I can imagine a scenario where I run different kde apps from different
ssh sessions and would like them to use the same dbus daemon. For that
scenario it is still necessary to set DBUS_SESSION_BUS_ADDRESS by
hand.
Cheers,
Jos
More information about the kde-core-devel
mailing list