Wygląda na to, że jakikolwiek proces łączący się z rodziną współdzielonych obiektów libpulse * - przed lub po uruchomieniu X i menedżera okien i3 - może domyślnie autospawnować serwer PulseAudio w ramach procesu użytkownika, jako produkt uboczny prób połączenia się z podsystemem audio . Twórca PulseAudio, Lennart Poettering, wydaje się to potwierdzać w e-mailu z dnia 29.05.2015 na listę mailingową systemd-devel :
„pulseaudio zasadniczo nie jest usługą systemową, ale usługą użytkownika. O ile sesja użytkownika nie jest w pełni przekonwertowana do zarządzania przez systemd (co jest mało prawdopodobne) systemd nie jest w ogóle zaangażowany w jej uruchomienie.
„PA jest zwykle uruchamiany ze skryptu lub usługi konfiguracji sesji. W Gnome jest to na przykład sesja gnome. Jest również automatycznie spawnowany na żądanie, jeśli biblioteki są używane i zauważ, że ich brakuje.”
Na przykład w Debian Stretch (Testowanie) przeglądarka IceWeasel łączy dwa obiekty współdzielone libpulse *: 1) libpulsecommon-7.1.so; oraz 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
Możesz zobaczyć, które uruchomione procesy prowadzą do libpulse *. Na przykład najpierw pobierz listę współdzielonych obiektów libpulse *, a następnie uruchom lsof na każdym z nich (uwaga: pochodzi z Debian Stretch (Testowanie), więc Twoje wyniki mogą się różnić):
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
Aby powiedzieć tym procesom, aby nie pojawiały się automatycznie PulseAudio, edytuj ~ / .config / pulse / client.conf i dodaj linię
autospawn = no
PulseAudio i jego biblioteki ogólnie przestrzegają tego ustawienia.
Łączenie libpulse * przez uruchamianie procesów może również wskazywać, dlaczego PulseAudio odradza się tak szybko. Wygląda na to, że strona FreeDesktop.org, „ Running PulseAudio ”:
„... zazwyczaj niektóre aplikacje działające w tle natychmiast się ponownie łączą, co powoduje natychmiastowe ponowne uruchomienie serwera”.
Wygląda na to, że wskazujesz, że uruchamiasz menedżera okien i3 za pomocą konsoli (uruchamiając xinit) i nie korzystasz z menedżera wyświetlania ani środowiska graficznego. Pozostała część tej odpowiedzi zawiera szczegółowe informacje dla tych, którzy używają GNOME, KDE i tak dalej.
INFORMACJE DODATKOWE, DLA AUTOSTARTU GNOME / KDE
Pakiet PulseAudio (5.0-13), w Debian Jessie (Stable) amd64, instaluje następujące cztery pliki systemowe :
- /etc/xdg/autostart/pulseaudio-kde.desktop
- /etc/xdg/autostart/pulseaudio.desktop
- / usr / bin / start-pulseaudio-x11
- / usr / bin / start-pulseaudio-kde
Niektórzy menedżerowie sesji graficznych automatycznie uruchamiają skrypty autostartu FreeDesktop.org przy logowaniu użytkownika. Z kolei skrypt autostartu PulseAudio informuje menedżerów sesji graficznych, aby uruchomili odpowiedni skrypt startowy PulseAudio:
/usr/bin/start-pulseaudio-x11
/usr/bin/start-pulseaudio-kde
Skrypty te wywołują klienta PulseAudio / usr / bin / pactl, aby załadować moduły PulseAudio, które odradzają serwer PulseAudio jako produkt uboczny (uwaga: jeśli masz autospawn ustawiony na „nie”, pactl szanuje to i nie będzie automatycznie wyświetlał serwera PulseAudio).
Więcej szczegółów na stronie FreeDesktop.org „ Uruchamianie PulseAudio ”.
Niektóre menedżery wyświetlania, dodatkowo i w innych dystrybucjach, mogą uruchamiać PulseAudio (na przykład SDDM, na ArchLinux . Chociaż opiekunowie mogą już to rozwiązać).
systemctl list-units -a
, nie zawiera PulseAudio. xinit uruchamia skrypty zi/etc/X11/Xsession.d
jak wspomniano, nie zawiera też PulseAudio.Odpowiedź udzielona przez Thushi / Carla Schroder (patrz następna odpowiedź) nadal działa dobrze po aktualizacji z debian wheezy do jessie. Po zbadaniu moich komunikatów rozruchowych wystąpił następujący błąd (błąd znajduje się w ostatniej linii).
pulseaudio-daemon został uruchomiony dwa razy. Raz przez rtkit-daemon, a drugi raz przez GNOME / KDE AUTOSTART lub inną aplikację. W każdym razie ustawienie w /etc/pulse/client.conf
rozwiązał mój problem. Jedyne, czego nie mogę potwierdzić, to to, że nie ma już żadnych skryptów startowych w żadnym katalogu /etc/rcX.d. Całkiem jasne, ponieważ rtkit-daemon wykonuje pracę z interakcją systemd.
źródło