Как запускается PulseAudio?

PulseAudio всегда работает в моей системе, и он всегда мгновенно перезапускается, если он сбой или я его убиваю. Тем не менее, я никогда не запускаю PulseAudio.

Я проверил /etc/init.d/ и /etc/X11/Xsession.d/ , и я проверил systemctl list-units -a , и PulseAudio нигде не найдено.

Почему PulseAudio, казалось бы, волшебным образом начинается сам по себе, если я никогда не запускаю его, и как он мгновенно перезапускается, когда он умирает?

Я использую Debian 8 (jessie) с xinit и оконным менеджером i3 и PulseAudio 5.

  • Как установить верхнюю границу громкости в PulseAudio?
  • Pulseaudio быстро переключает выходы на больших объемах
  • Устранение неполадок обнаружения гнезд в Pulseaudio
  • Файл asound.conf поврежден, не позволяет воспроизвести правильную звуковую карту, в результате она продолжает терпеть неудачу
  • pulseaudio объемом более 100%
  • импульсные звуковые колонки по умолчанию звучат в качестве наушников
  • Что означают слова раковины и источника в pulseaudio?
  • Искажение при высоких громкости на наушниках
  • 3 Solutions collect form web for “Как запускается PulseAudio?”

    Кажется, что любой процесс, связанный с семейством общих объектов 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 rx-- 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 rx-- 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 * shared objects, затем запустите 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, « Running PulseAudio », похоже, подтверждает это:

    «… обычно какое-то фоновое приложение немедленно восстанавливается, что приводит к немедленному перезапуску сервера».

    Кажется, вы указываете, что вы запускаете оконный менеджер i3 через консоль, запустив xinit и не пользуйтесь диспетчером дисплея или рабочей средой. Остальная часть этого ответа детализирует информацию для тех, кто использует GNOME, KDE и т. Д.

    ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ, ДЛЯ GNOME / KDE AUTOSTART

    Пакет PulseAudio (5.0-13), в Debian Jessie (Stable) amd64, устанавливает следующие четыре системных файла :

    1. /etc/xdg/autostart/pulseaudio-kde.desktop
    2. /etc/xdg/autostart/pulseaudio.desktop
    3. / USR / бен / старт-PulseAudio-x11
    4. / 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 уважает это и не будет autospawn PulseAudio server).

    Более подробно, на странице FreeDesktop.org « Запуск PulseAudio ».

    Некоторые диспетчеры дисплеев, кроме того, в других дистрибутивах, могут запускать PulseAudio (например, SDDM, на ArchLinux , хотя, возможно, разработчики могли решить это, к настоящему времени).

    Pulseaudio – маленький демон. man pulseaudio говорит, что вы можете отключить его с помощью команды pulseaudio --kill но это повторяет возрождение – оно само возрождается. Обычный скрипт инициализации запускается при загрузке, /etc/rc2.d/S50pulseaudio . Но когда вы пытаетесь управлять этим обычным способом Linux, это не работает, потому что запуск /etc/init.d/pulseaudio stop не останавливает его. Удаление /etc/rc2.d/S50pulseaudio не препятствует запуску при загрузке.

    Чтобы остановить привычку /etc/pulse/client.conf , откройте /etc/pulse/client.conf , измените autospawn = yes на autospawn = no и установите демона-двоичный файл в /bin/true . Убедитесь, что эти строки раскоментированы, например:

      autospawn = no daemon-binary = /bin/true 

    Теперь мы можем иметь дело с обычными файлами запуска Linux. Сначала удалите /etc/rc2.d/S50pulseaudio . Или вы можете переименовать его в команду kill, которая сохраняет ссылку в случае, если вы когда-нибудь захотите ее:

    $ mv /etc/rc2.d/S50pulseaudio /etc/rc2.d/K50pulseaudio

    ИЛИ

    Может быть еще один файл автозагрузки: /etc/X11/Xsession.d/70pulseaudio . Это запускает Pulse, когда начинается сеанс Gnome. Удалите его или скопируйте в другой каталог, если вы хотите его сохранить, и снова проверьте точное имя файла. Полезный трюк, когда вы находите скрипты, запускающие PulseAudio, заключается в изменении двоичного кода, который они вызывают из /usr/bin/pulseaudio в /bin/true . Это хороший маленький исполняемый файл, единственной задачей которого является «ничего не делать, успешно». Он держит сценарии счастливыми, и это удобный заполнитель, если вы когда-либо захотите его изменить.

    Теперь, когда вы очистили все сценарии запуска и обновления, теперь используйте приведенные ниже команды, чтобы остановить и запустить импульсный звук.

      $ pulseaudio --kill $ pulseaudio --start 

    Надеюсь это поможет.

    Ответ, данный Thushi / Carla Schroder (см. Следующий ответ), все еще отлично работает после обновления от debian wheezy до jessie. После исследования моих загрузочных сообщений я получил следующую ошибку (ошибка указана в последней строке).

     root@voylinx:/etc#journalctl -b | grep pulseaudio Dez 31 16:19:46 voylinx rtkit-daemon[1507]: Successfully made thread 1506 of process 1506 (/usr/bin/pulseaudio) owned by '1000' high priority at nice level -11. Dez 31 16:19:49 voylinx rtkit-daemon[1507]: Successfully made thread 1526 of process 1506 (/usr/bin/pulseaudio) owned by '1000' RT at priority 5. Dez 31 16:19:49 voylinx rtkit-daemon[1507]: Successfully made thread 1527 of process 1506 (/usr/bin/pulseaudio) owned by '1000' RT at priority 5. Dez 31 16:19:49 voylinx rtkit-daemon[1507]: Successfully made thread 1528 of process 1506 (/usr/bin/pulseaudio) owned by '1000' RT at priority 5. Dez 31 16:19:49 voylinx rtkit-daemon[1507]: Successfully made thread 1533 of process 1506 (/usr/bin/pulseaudio) owned by '1000' RT at priority 5. Dez 31 16:19:50 voylinx rtkit-daemon[1507]: Successfully made thread 1548 of process 1548 (/usr/bin/pulseaudio) owned by '1000' high priority at nice level -11. Dez 31 16:19:50 voylinx pulseaudio[1548]: [pulseaudio] pid.c: Daemon already running. 

    pulseaudio-daemon запускался дважды. Однажды с помощью rtkit-daemon, а иногда и с помощью GNOME / KDE AUTOSTART или другого приложения. В любом случае установка в /etc/pulse/client.conf

     autospawn = no daemon-binary = /bin/true 

    решил мою проблему. Единственное, что я не могу подтвердить, – это больше никаких сценариев запуска в любых каталогах /etc/rcX.d. Довольно ясно, потому что rtkit-daemon выполняет работу с взаимодействием systemd.

    Interesting Posts

    Как я могу заставить программу unix `pass` играть хорошо с` ssh` внутри виртуального терминала Linux?

    Не удалось разрешить хост: mirrorlist.centos.org

    Есть ли способ отслеживать все события, отправленные в модуль libnotify?

    Аутентификация аутентификации по нескольким доменам, но тот же подкаталог

    dhclient для обычных (не root) пользователей

    Как ввести символ табуляции в vim с включенным плагином SuperTab?

    Нарисуйте сегменты из заданных точек

    Как измерить время запуска Firefox?

    Редактор Кейт: как перейти к модифицированным линиям?

    Могу ли я автоматизировать многотомную функцию tar?

    Red Hat <пользователь> не может зарегистрироваться в каких-либо организациях. Как зарегистрироваться?

    Tomcat – Как работает setenv.sh?

    Поиск процессов, реагирующих на заданный привязку клавиш

    `su` и` sudo bash` дают корневое приглашение, которое не будет выполнять какую-либо команду

    Переименование папки с помощью txt-файла

    Linux и Unix - лучшая ОС в мире.