[pulseaudio-discuss] [PATCH] daemon: Stop session-started PA daemon when exiting X session

Tanu Kaskinen tanu.kaskinen at linux.intel.com
Tue Sep 16 04:03:34 PDT 2014


On Mon, 2014-09-15 at 12:09 -0300, Felipe Sateler wrote:
> On Mon, Sep 15, 2014 at 5:50 AM, Tanu Kaskinen
> <tanu.kaskinen at linux.intel.com> wrote:
> > On Wed, 2014-09-10 at 09:51 -0300, Felipe Sateler wrote:
> >> On Wed, Sep 10, 2014 at 6:18 AM, David Henningsson
> >> <david.henningsson at canonical.com> wrote:
> >> >
> >> >
> >> > On 2014-04-13 20:21, Balint Reczey wrote:
> >> >>
> >> >> Hi,
> >> >>
> >> >> This patch has been contributed through Debian's bug tracker.
> >> >> Please review it and consider accepting it to the project's code base if
> >> >> you find it useful.
> >> >>
> >> >> Thanks,
> >> >> Balint
> >> >
> >> >
> >> > Hi Balint,
> >> >
> >> > I wonder if the above can cause a problem if:
> >> >
> >> >  1) User starts X session + PulseAudio
> >> >  2) The same user switches to something else (e g, a VT or SSH session),
> >> > logs in, and starts using the PA daemon
> >> >  3) User logs out of X session
> >> >
> >> > Now PulseAudio is killed, while still being in use by the user.
> >>
> >> I would think the daemon is per-session, not per-user, given that
> >> (until systemd --user works) we cannot track user stuff across
> >> sessions.
> >
> > We can, module-systemd-login exists for that purpose. It creates a
> > client object for each session that the user has. As long as there are
> > any client objects in PulseAudio, the server won't shut down
> > automatically. When the last client exits, PulseAudio will exit after a
> > delay (20 seconds by default).
> 
> And what happens if I log in to X, switch to a VT, logout from X and
> login again to X? As I understand the current status, the dbus session
> is tied to the X server, so there should be a new session bus in thi
> case. Does pulseaudio handle this situation correctly? (eg, will
> bluetooth devices work after this?)

Bluetooth is fine, because it uses the system bus. There are some things
that use the session bus, however, and I expect these to work only in
the first session of the user, or if the system is configured so that
"session bus" actually means "user bus" (I don't know how common this
is). "git grep SESSION" found these uses of the session bus:

 - the D-Bus interface of PulseAudio, or specifically the "server
discovery" part of it (not used much, disabled by default)
 - auto-detection of Jack (the other sound server)
 - the device reservation protocol (used to cooperate with Jack)
 - the Rygel integration

Regarding your note about supporting non-systemd systems: we also have
module-console-kit, which serves the same purpose as
module-systemd-login.

-- 
Tanu



More information about the pulseaudio-discuss mailing list