Sembra che qualsiasi processo collegato alla famiglia di oggetti condivisi libpulse * - prima o dopo l'esecuzione di X e il gestore di finestre i3 - possa implicitamente generare automaticamente il server PulseAudio, sotto il processo dell'utente, come sottoprodotto di tentativi di interfaccia con il sottosistema audio . Il creatore di PulseAudio Lennart Poettering sembra confermarlo, in una e-mail del 2015-05-29 alla mailing list systemd-devel :
"pulseaudio non è generalmente un servizio di sistema ma un servizio utente. A meno che la sessione dell'utente non sia completamente convertita per essere gestita anche da systemd (il che è improbabile) systemd non è quindi coinvolto affatto con l'avvio.
"La PA di solito viene avviata dallo script o dal servizio di installazione della sessione. In Gnome, ad esempio, questa è gnome-session. Inoltre, viene generata automaticamente su richiesta se si utilizzano le librerie e si noti che manca."
Ad esempio, su Debian Stretch (Testing), il browser IceWeasel si collega a due oggetti condivisi libpulse *: 1) libpulsecommon-7.1.so; e 2) libpulse.so.0.18.2:
k@bucket:~$ ps -ef | grep iceweasel
k 17318 1 5 18:58 tty2 00:00:15 iceweasel
k 17498 1879 0 19:03 pts/0 00:00:00 grep iceweasel
k@bucket:~$ sudo pmap 17318 | grep -i pulse
00007fee08377000 65540K rw-s- pulse-shm-2442253193
00007fee0c378000 65540K rw-s- pulse-shm-3156287926
00007fee11d24000 500K r-x-- libpulsecommon-7.1.so
00007fee11da1000 2048K ----- libpulsecommon-7.1.so
00007fee11fa1000 4K r---- libpulsecommon-7.1.so
00007fee11fa2000 8K rw--- libpulsecommon-7.1.so
00007fee121af000 316K r-x-- libpulse.so.0.18.2
00007fee121fe000 2044K ----- libpulse.so.0.18.2
00007fee123fd000 4K r---- libpulse.so.0.18.2
00007fee123fe000 4K rw--- libpulse.so.0.18.2
Potresti vedere quali processi in esecuzione si collegano a libpulse *. Ad esempio, prima ottieni un elenco di oggetti condivisi libpulse *, quindi esegui lsof su ciascuno (nota: questo proviene da Debian Stretch (Test), quindi il tuo output potrebbe differire):
sudo find / -type f -name "*libpulse*"
*snip*
/usr/lib/x86_64-linux-gnu/pulseaudio/libpulsedsp.so
/usr/lib/x86_64-linux-gnu/pulseaudio/libpulsecommon-7.1.so
/usr/lib/x86_64-linux-gnu/libpulse.so.0.18.2
/usr/lib/x86_64-linux-gnu/libpulse-simple.so.0.1.0
/usr/lib/x86_64-linux-gnu/libpulse-mainloop-glib.so.0.0.5
/usr/lib/libpulsecore-7.1.so
/usr/lib/ao/plugins-4/libpulse.so
sudo lsof /usr/lib/x86_64-linux-gnu/pulseaudio/libpulsecommon-7.1.so
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
gnome-she 864 Debian-gdm mem REG 252,1 524312 274980 /usr/lib/x86_64-linux-gnu/pulseaudio/libpulsecommon-7.1.so
gnome-set 965 Debian-gdm mem REG 252,1 524312 274980 /usr/lib/x86_64-linux-gnu/pulseaudio/libpulsecommon-7.1.so
gnome-set 1232 k mem REG 252,1 524312 274980 /usr/lib/x86_64-linux-gnu/pulseaudio/libpulsecommon-7.1.so
gnome-she 1286 k mem REG 252,1 524312 274980 /usr/lib/x86_64-linux-gnu/pulseaudio/libpulsecommon-7.1.so
chrome 2730 k mem REG 252,1 524312 274980 /usr/lib/x86_64-linux-gnu/pulseaudio/libpulsecommon-7.1.so
pulseaudi 18356 k mem REG 252,1 524312 274980 /usr/lib/x86_64-linux-gnu/pulseaudio/libpulsecommon-7.1.so
Per dire a questi processi di non riprodurre automaticamente PulseAudio, modificare ~ / .config / pulse / client.conf e aggiungere la riga
autospawn = no
PulseAudio e le sue librerie rispettano tale impostazione, in generale.
Il collegamento libpulse * eseguito dai processi può anche indicare perché PulseAudio si rigeneri così rapidamente. La pagina di FreeDesktop.org, " Running PulseAudio ", sembra confermare questo:
"... in genere alcune applicazioni in background si riconnetteranno immediatamente, causando il riavvio immediato del server."
Sembra che indichi di avviare i3 window manager tramite la console (eseguendo xinit) e di non utilizzare un display manager o un ambiente desktop. Il resto di questa risposta contiene informazioni dettagliate per coloro che usano GNOME, KDE e così via.
INFORMAZIONI AGGIUNTIVE, PER GNOME / KDE AUTOSTART
Il pacchetto PulseAudio (5.0-13), in Debian Jessie (Stable) amd64, installa i seguenti quattro file di sistema :
- /etc/xdg/autostart/pulseaudio-kde.desktop
- /etc/xdg/autostart/pulseaudio.desktop
- / Usr / bin / start-pulseaudio-x11
- / Usr / bin / start-pulseaudio-kde
Alcuni gestori di sessioni grafiche eseguono automaticamente gli script di avvio automatico di FreeDesktop.org all'accesso dell'utente. Lo script di avvio automatico PulseAudio, a sua volta, dice ai gestori di sessioni grafiche di eseguire lo script di avvio PulseAudio appropriato:
/usr/bin/start-pulseaudio-x11
/usr/bin/start-pulseaudio-kde
Questi script chiamano il client PulseAudio / usr / bin / pactl per caricare i moduli PulseAudio, che generano il server PulseAudio come sottoprodotto (nota: se il sistema autospawn è impostato su "no", Pactl rispetta quello e non crea automaticamente il server PulseAudio).
Maggiori dettagli, nella pagina di FreeDesktop.org " Running PulseAudio ".
Alcuni gestori di display, in aggiunta e in altre distribuzioni, possono avviare PulseAudio (ad esempio, SDDM, su ArchLinux . Anche se i manutentori potrebbero averlo risolto, ormai).
systemctl list-units -a
, non include PulseAudio. xinit lancia gli script da/etc/X11/Xsession.d
e, come detto, non include neanche PulseAudio.