Saltar al contenido

¿Cómo se inicia PulseAudio?

No dudes en compartir nuestra página y códigos en tus redes, apóyanos para aumentar nuestra comunidad.

Solución:

Parece que cualquier proceso que se vincule a la familia libpulse * de objetos compartidos, ya sea antes o después de ejecutar X y el administrador de ventanas i3, puede implícitamente generar automáticamente el servidor PulseAudio, bajo su proceso de usuario, como un subproducto de los intentos de interactuar con el subsistema de audio. . El creador de PulseAudio, Lennart Poettering, parece confirmar esto, en un correo electrónico del 29 de mayo de 2015 a la lista de correo systemd-devel:

“pulseaudio generalmente no es un servicio del sistema, sino un servicio de usuario. A menos que su sesión de usuario esté completamente convertida para ser administrada por systemd también (lo cual es poco probable) systemd no está involucrado en absoluto en su inicio.

“PA generalmente se inicia desde el script o servicio de configuración de la sesión. En Gnome eso es gnome-session, por ejemplo. También se genera automáticamente a pedido si se utilizan las bibliotecas y tenga en cuenta que falta”.

Por ejemplo, en Debian Stretch (Pruebas), el navegador web IceWeasel se vincula a dos objetos compartidos libpulse *: 1) libpulsecommon-7.1.so; y 2) libpulse.so.0.18.2:

[email protected]:~$ 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
[email protected]:~$ 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

Puede ver qué procesos en ejecución se vinculan a libpulse *. Por ejemplo, primero obtenga una lista de objetos compartidos libpulse *, luego ejecute lsof en cada uno (nota: esto proviene de Debian Stretch (Prueba), por lo que su resultado puede diferir):

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

Para decirle a estos procesos que no generen automáticamente PulseAudio, edite ~ / .config / pulse / client.conf y agregue una línea

autospawn = no

PulseAudio y sus bibliotecas respetan esa configuración, en general.

La vinculación de libpulse * mediante procesos en ejecución también puede indicar por qué PulseAudio reaparece tan rápidamente. La página de FreeDesktop.org, “Ejecutando PulseAudio”, parece confirmar esto:

“… normalmente, alguna aplicación en segundo plano se volverá a conectar inmediatamente, lo que provocará que el servidor se reinicie de inmediato”.

Parece indicar que inicia el administrador de ventanas i3 a través de la consola (ejecutando xinit) y no usa un administrador de pantalla o un entorno de escritorio. El resto de esta respuesta detalla información para aquellos que usan GNOME, KDE, etc.

INFORMACIÓN ADICIONAL PARA GNOME / KDE AUTOSTART

El paquete PulseAudio (5.0-13), en Debian Jessie (estable) amd64, instala los siguientes cuatro archivos de sistema:

  1. /etc/xdg/autostart/pulseaudio-kde.desktop
  2. /etc/xdg/autostart/pulseaudio.desktop
  3. / usr / bin / start-pulseaudio-x11
  4. / usr / bin / start-pulseaudio-kde

Algunos administradores de sesiones gráficas ejecutan automáticamente scripts de inicio automático de FreeDesktop.org cuando el usuario inicia sesión. El script de inicio automático de PulseAudio, a su vez, le dice a los administradores de sesiones gráficas que ejecuten el script de inicio de PulseAudio apropiado:

/usr/bin/start-pulseaudio-x11
/usr/bin/start-pulseaudio-kde

Estos scripts llaman al cliente PulseAudio / usr / bin / pactl para cargar los módulos PulseAudio, lo que genera el servidor PulseAudio como un subproducto (nota: si tiene el inicio automático configurado en “no”, pactl lo respeta y lo hará no servidor PulseAudio autospawn).

Más detalles, en la página de FreeDesktop.org “Ejecución de PulseAudio”.

Algunos administradores de pantalla, además y en otras distribuciones, pueden iniciar PulseAudio (por ejemplo, SDDM, en ArchLinux. Aunque los mantenedores pueden haber resuelto esto, a esta altura).

¿Cómo está comenzando PulseAudio?

Si bien esta sigue siendo una pregunta válida, la respuesta ha cambiado con el tiempo. Las respuestas anteriores son insuficientes o incorrectas, ya que ahora el systemd del usuario inicia automáticamente PulseAudio, que a su vez fue iniciado por el systemd del sistema cuando el usuario inició sesión.

$ systemctl --user status pulseaudio
● pulseaudio.service - Sound Service
   Loaded: loaded (/usr/lib/systemd/user/pulseaudio.service; enabled; vendor pre
   Active: active (running) since Tue 2020-03-14 15:29:56 ZULU; 13s ago
 Main PID: 31080 (pulseaudio)
   CGroup: /user.slice/user-1000.slice/[email protected]/pulseaudio.service
           ├─31080 /usr/bin/pulseaudio --daemonize=no
           └─31081 /usr/lib/x86_64-linux-gnu/pulse/gsettings-helper

Para matar PulseAudio

Para detener el proceso PulseAudio y que no lance inmediatamente una nueva instancia, use systemctl --user stop:

$ systemctl --user stop pulseaudio.service pulseaudio.socket

Para deshabilitar PulseAudio

Si no desea que PulseAudio se inicie automáticamente al iniciar sesión, puede deshabilitarlo así:

$ systemctl --user disable pulseaudio.service pulseaudio.socket

(Por cierto, incluso con él deshabilitado, aún puede iniciar PulseAudio cuando lo desee usando systemctl --user start.)


Respondiendo la pregunta en general

Los comandos anteriores son todo lo que necesita. Sin embargo, si está interesado en cómo encontrar la solución por su cuenta, siga leyendo.

Para saber qué procesos tienen abierta la tarjeta de sonido

Utilice el lsof o fuser -v comandos para ver qué procesos tienen abiertos los archivos del dispositivo.

$ lsof /dev/snd/*
COMMAND     PID USER      FD   TYPE DEVICE SIZE/OFF  NODE NAME
pulseaudi 32768 hackerb9  3u   CHR  116,5       0t0 15499 /dev/snd/controlC0

Para saber qué proceso lanzó PulseAudio

Usar pstree -s para mostrar los procesos padre así:

$ pstree -sp 32768
systemd(1)───systemd(738)───pulseaudio(32768)─┬─gsettings-helpe(32769)─┬─{gsett+
                                              │                        ├─{gsett+
                                              │                        └─{gsett+
                                              └─pulseaudio(32773)

Lo usé para ver que PulseAudio en realidad estaba siendo lanzado por una instancia de systemd (PID 738) que se estaba ejecutando en mi propia cuenta:

$ ps -fp 738
UID        PID  PPID  C STIME TTY          TIME CMD
hackerb9   738     1  0 Feb10 ?        00:00:00 /lib/systemd/systemd --user

A partir de ahí, es fácil adivinar que es necesario utilizar systemctl --user para detenerlo.

Pulseaudio es un pequeño demonio. man pulseaudio dice que puedes apagarlo con el comando pulseaudio --kill pero hacer eso toma el renacimiento de nuevo, reaparece a sí mismo. Un script de inicio normal está ahí para iniciarlo en el arranque, /etc/rc2.d/S50pulseaudio. Pero cuando intentas controlar esto de la forma normal de Linux, no funciona, porque ejecutar /etc/init.d/pulseaudio stop no lo detiene. Eliminando /etc/rc2.d/S50pulseaudio no evita que se inicie en el arranque.

Para detener su hábito de reaparición, abra /etc/pulse/client.conf, cambio autospawn = yes para autospawn = noy establezca daemon-binary en /bin/true. Asegúrese de que estas líneas no estén comentadas, así:

 autospawn = no
 daemon-binary = /bin/true

Ahora podemos ocuparnos de los archivos de inicio normales de Linux. Primero borrar /etc/rc2.d/S50pulseaudio. O puede cambiarle el nombre a un comando de interrupción, que conserva el enlace en caso de que alguna vez lo desee de nuevo:

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

O

Puede haber un archivo de inicio más del que prescindir: /etc/X11/Xsession.d/70pulseaudio. Esto inicia Pulse cuando se inicia una sesión de Gnome. Bórrelo o cópielo en un directorio diferente en caso de que quiera guardarlo, y nuevamente verifique el nombre exacto del archivo. Un truco útil, cuando encuentra scripts que inician PulseAudio, es cambiar el binario desde el que llaman /usr/bin/pulseaudio para /bin/true. Este es un pequeño ejecutable cuyo único trabajo es “no hacer nada, con éxito”. Mantiene contentos los scripts y es un marcador de posición conveniente si alguna vez desea volver a cambiarlo.

Ahora que ha purgado todos los scripts de inicio y reaparición, ahora use los siguientes comandos para detener e iniciar el audio de pulso.

 $ pulseaudio --kill
 $ pulseaudio --start

Sección de Reseñas y Valoraciones

Si te gusta la informática, tienes la habilidad dejar una crónica acerca de qué le añadirías a esta reseña.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *