On Sat, 2014-10-18 at 20:43 +0200, Colin Guthrie wrote: > Hi, > > So while at linux plumbers attending the systemd hackfest, I thought a good > use of the hacking time I had available would be to allow PulseAudio to be > activated via systemd's socket activation system. Great, thanks for the patches! > The changes needed are actually quite minimal, and by doing this we can > disable quite a lot of code in PulseAudio related to autospawning (which > does still seem to cause some problems for some users) and we also get a few > handy side effects too. > > It becomes much easier, as a developer, to stop the system PulseAudio and run > your own test instance i.e. you do not have to disable autospawning before > killing the system PA - you just run: > > systemctl --user stop pulseaudio.socket pulseaudio.service > > and then run your test version. > > A second advantage is that there is a relatively simple and documented way to > run e.g. mpd as a normal user before you login via the systemd user lingering > feature. > > I've written a few docs about all this here: > http://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/Software/PulseAudio/Documentation/User/Running/ It seems to be buried rather deep in the hierarchy ;) (I know, it's impossible to use the web UI to create pages where you want. I've learned to use git directly when I need to create a new wiki page.) We support non-systemd systems too, so I think the page should be named something else than just general "Running", given that the contents are only about systemd. Or alternatively add similar documentation for non-systemd systems too. Also, I don't think "the preferred method of launching and running PulseAudio is via systemd" is an accurate statement. I'm sure it's your preferred method, but you can't generalize that to everyone :) Patch 6 is missing. Any idea where it went? I didn't really review the code, but I was very interested in how you solved the problem of figuring out how to map the socket activation fd to a given module-protocol-native-unix instance, so I took a quick look on that. Looks like a very nice solution. -- Tanu