Le 16/09/2011 13:35, Colin Guthrie a écrit :
'Twas brillig, and Martin Hamant at 16/09/11 10:19 did gyre and gimble:
Hi there,

I need to setup a server that permanently plays audio by mpd thru
pulseaudio. With or without X/gnome started. Means pulseaudio and mpd
should start before the graphical part.
There will be only one unique user on this box.

using Ubuntu 10.04 LTS, pulseaudio daemon starts thanks to the
auto-spawn feature, when a gnome user logs in -  the issue is,  if I
start mpd (or any software that use pulseaudio) before gnome, it'll
spawn a pulseaudio daemon that belongs to the mpd user. So I get two
pulseaudio instances: one which belongs to mpd, the other to my unique
system user... But here I need my system user to "supervise" volumes and
pulseaudio properties for the whole system !

if I delay mpd startup (by modifying init.d script....), all's going
well - as it connects to the existing pulseaudio instance. But I don't
feel good about that  "strap".

In a common usage you won't really notice what I describe here, but as I
am running this ubuntu from a USB stick, there is a period of time
before gnome starts where any program that use pulseaudio will start its
own instance.

Of course the solution that comes in mind is System Mode. Not good.
Second: delays =>  not good
So... What is the best pratice to do that ? Is running mpd as the user
which runs the gnome session is a working /or good solution ?

Thanks !!
OK, so the long term solution is for Ubuntu to switch to systemd (I'm
sure they will eventually) and then use the login lingering feature of
session management to allow certain user processes to start before the
user has logged in (this is specifically designed for situations like
sharing files via network with Rygel).

This feature could be extended to PA but it does come with some
complications. Only the "active" user is allowed access ot audio. When
the login manager is present this is GDM (of course Ubunutu are also
potentially going to use lightdm which will be broken in all sorts of
ways until they start running a full session (which I think was the
whole reason to use it in the first place... so don't know what's going
on there).

Now if the login manager wants to use sounds (e.g. for feedback/earcandy
etc.) then it needs to have it's own PA.

But, regardless of the above complications, running mpd as a user
lingered processes is likely the best route forward.



As a secondary solution for you now, what I'd recommend is the following:

  1. Add your user to the "audio" group. THis means you'll always have
the right to use the audio devices on your system even when not logged
in. This comes with some drawbacks (like gdm user not being able to
access the device when you've got it open with mpd) but in a single
(real) user system, this isn't too bad.

  2. Run mpd as you, not as an "mpd" user.


With this setup things should (mostly) work OK for you.


The alternative is to use system wide mode but then you won't get the
benefits of e.g. SHM and module loading etc. etc. without doing quite a
few tweaks.
Thank you Colin for answering that fast.
"run mpd as you" implies to not run mpd as a system wide service but with "manual" start. Or I would have to modify system wide /etc/mpd.conf with my user: that would work but would be a little inconsistent...

In another hand, the user isn't doing anything else that playing audio files thru mpd, and recording with another app: liquidsoap which runs as 'liquidsoap' user, which is in the pulse-access group..... system sounds are disabled.
The question is: do I need on the fly module loading in that context ?

Thanks again !!

_______________________________________________
pulseaudio-discuss mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss

Reply via email to