Кажется, что любой процесс, связывающийся с семейством общих объектов libpulse * - до или после запуска X и оконного менеджера i3 - может неявно автоматически вызывать сервер PulseAudio под вашим пользовательским процессом как побочный результат попыток взаимодействия с аудиоподсистемой , Создатель PulseAudio Леннарт Поэттеринг, кажется, подтверждает это в электронном письме 2015-05-29 в список рассылки systemd-devel :
"pulseaudio - это, как правило, не системная служба, а пользовательская служба. Если ваш пользовательский сеанс не полностью преобразован для управления системой systemd (что маловероятно), systemd, следовательно, вообще не участвует в его запуске.
«PA обычно запускается из сценария или службы установки сеанса. В Gnome это, например, gnome-session. Он также автоматически создается по требованию, если используются библиотеки, и обратите внимание, что он отсутствует».
Например, в Debian Stretch (Тестирование) веб-браузер IceWeasel ссылается на два общих объекта libpulse *: 1) libpulsecommon-7.1.so; и 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
Вы можете увидеть, какие запущенные процессы ссылаются на libpulse *. Например, сначала получите список общих объектов libpulse *, затем запустите lsof для каждого (примечание: это происходит из Debian Stretch (Testing), поэтому ваш вывод может отличаться):
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
Чтобы запретить этим процессам автоматически вызывать PulseAudio, отредактируйте ~ / .config / pulse / client.conf и добавьте строку
autospawn = no
PulseAudio и его библиотеки в целом соблюдают эту настройку.
Связывание libpulse * с помощью запущенных процессов также может указывать, почему PulseAudio запускается так быстро. Страница FreeDesktop.org « Запуск PulseAudio », кажется, подтверждает это:
«... обычно какое-то фоновое приложение немедленно переподключается, что приводит к немедленной перезагрузке сервера».
Похоже, вы указываете, что запускаете диспетчер окон i3 через консоль (с помощью xinit) и не используете диспетчер отображения или среду рабочего стола. Остальная часть этого ответа содержит подробную информацию для тех, кто использует GNOME, KDE и так далее.
ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ, ДЛЯ АВТОМОБИЛЯ GNOME / KDE
Пакет PulseAudio (5.0-13) в Debian Jessie (Stable) amd64 устанавливает следующие четыре системных файла :
- /etc/xdg/autostart/pulseaudio-kde.desktop
- /etc/xdg/autostart/pulseaudio.desktop
- / USR / бен / старт-PulseAudio-x11
- / USR / бен / запуск PulseAudio-KDE
Некоторые графические менеджеры сеансов автоматически запускают сценарии автозапуска FreeDesktop.org при входе пользователя. Сценарий автозапуска PulseAudio, в свою очередь, указывает графическим менеджерам сеансов запустить соответствующий сценарий запуска PulseAudio:
/usr/bin/start-pulseaudio-x11
/usr/bin/start-pulseaudio-kde
Эти сценарии вызывают PulseAudio client / usr / bin / pactl для загрузки модулей PulseAudio, который порождает сервер PulseAudio как побочный продукт (примечание: если у вас установлено autospawn «no», pactl учитывает это и не будет автоматически вызывать PulseAudio server).
Более подробно, на странице FreeDesktop.org « Запуск PulseAudio ».
Некоторые дисплеи дисплеев, в дополнение и в других дистрибутивах, могут запускать PulseAudio (например, SDDM в ArchLinux . Хотя, возможно, к этому моменту уже решили проблему с сопровождающими).
systemctl list-units -a
, не включает PulseAudio. xinit запускает сценарии/etc/X11/Xsession.d
и, как уже упоминалось, не включает PulseAudio.Ответ, данный Thushi / Carla Schroder (см. Следующий ответ), все еще работает нормально после перехода с debian wheezy на jessie. Я получил следующую ошибку после исследования моих загрузочных сообщений (ошибка указана в последней строке).
pulseaudio-daemon запускался дважды. Один раз с помощью rtkit-daemon, а другой - с помощью GNOME / KDE AUTOSTART или другого приложения. В любом случае настройка в /etc/pulse/client.conf
решил мою проблему. Единственное, что я не могу подтвердить, так это то, что в каких-либо каталогах /etc/rcX.d больше нет скриптов запуска. Довольно ясно, потому что rtkit-daemon выполняет работу с взаимодействием systemd.
источник