One user morne than one time logged in.

Havoc Pennington hp at
Tue Jan 24 13:44:36 PST 2006

On Tue, 2006-01-24 at 13:50 +0000, Robert McQueen wrote:
> Things like your configuration or address book are just daemons
> representing files stored in your home directory - to require the daemon
> to run once per login is gratuitous and annoying, and makes the daemon
> harder to write because it can't make course-grained locks on its
> backend storage.

This is already in the archives, but let's continue to keep clear that a
user bus is impossible to implement, except as a network service
(something like webmail or LDAP or IMAP).

What we could implement is a per-user-machine-pair bus. That has exactly
the same issue as a session bus, in that you can get multiple of them
per user (or per home directory). In fact it happens more often in my
experience that people log in from two different machines, than that
they log in twice on the same machine.

If your daemon is broken with two session buses, it would also be broken
with two per-user-machine buses sharing the same home directory over
NFS. If you need globally-unique per-user state, you need a network
server that a sysadmin or web hosting service would set up.

All a per-user-machine-pair bus adds, then, is increased memory/cpu
efficiency (fewer copies of a given daemon) in the case where you log in
twice on the same machine. It doesn't change in any way how you design
or implement your daemon, because you have to handle login from two
different machines *anyway*

I'm not trying to be close-minded here, I just honestly don't understand
how a user-machine-pair bus solves anything when we recognize that
multiple logins *from different machines* is the common case for
multiple logins.

>  The same applies to what I'm working on, where the
> connections to IM and VOIP services belong conceptually to a particular
> user, and should certainly be available to client programs running
> within another login session.

If you have IM or VoIP state that should be shared between two sessions,
it should also be shared between two separate machines. Thus, you need
it on a network server, not in a user-machine-pair bus.

Solve the "I have two computers" case and "I have two sessions" will
just magically work.


More information about the dbus mailing list