3 votes

Empêchez pulseaudio de redémarrer sous gdm/systemd ! Les autres réponses ne fonctionnent pas !

Lorsque je démarre (Ubuntu 18.04), systemd lance pulseaudio sous l'utilisateur gdm. Je ne veux pas cela - je veux exécuter pulseaudio en tant que mon utilisateur, en raison des problèmes avec pulseaudio sous gdm et mpd.

J'essaie donc de le tuer, mais rien ne peut tuer ce monstre. Il continue de réapparaître. Des gens ont déjà posé cette question, et toutes les solutions suivantes ont échoué :

  1. Ajoutez "autospawn=no" à "/etc/pulse/client.conf" Ajoutez "autospawn=no" à "/var/lib/gdm3/.config/pulse/client.conf"
  2. Ajoutez aussi "daemon-binary = /bin/true" à client.conf
  3. "sudo rm -f /etc/xdg/autostart/pulseaudio.desktop"
  4. "sudo systemctl kill pulseaudio" (Retourne "Failed to kill unit pulseaudio.service : L'unité pulseaudio.service n'est pas chargée.")
  5. Suppression du fichier /etc/xdg/autostart/pulseaudio*.
  6. systemctl --user stop pulseaudio.socket
  7. systemctl --user stop pulseaudio.service
  8. systemctl disable pulseaudio

Selon pstree, il continue à être redémarré par systemd avec l'utilisateur gdm, si je le tue (en tant que root) le processus meurt, et systemd le relance.

Mais je n'arrive pas à comprendre pourquoi systemd le démarre :

% systemctl --type=service | grep pulse
% systemctl list-units --type=service | grep pulse

En fait, systemctl ne pense même pas qu'il est en cours d'exécution :

% systemctl | grep pulse
% systemctl --state=running | grep pulse

C'est pourquoi :

% systemctl disable pulseaudio
Failed to disable unit: Unit file pulseaudio.service does not exist.

Et systemd n'admet pas de le démarrer :

% systemd --test | grep -i pulse
Loaded units and determined initial transaction in 27ms.

Mais pstree nous dit que c'est un mensonge :

% pstree
    .....
    |-systemd-+-(sd-pam)
    ...
    |         |-pulseaudio---{pulseaudio}

Il n'est pas non plus listé dans le fichier init.d ou Xsession.d scripts :

% ls /etc/init.d/*pulse*
ls: cannot access '/etc/init.d/*pulse*': No such file or directory
% ls /etc/X11/Xsession.d/*pulse*
ls: cannot access '/etc/X11/Xsession.d/*pulse*': No such file or directory

Bien que ce fichier existe :

/var/lib/gdm3/.config/systemd/user/sockets.target.wants/pulseaudio.socket Ce qui revendique "WantedBy=sockets.target" quoi que cela veuille dire

Je pense que cela peut être en partie un problème de chemin d'accès à systemd - il n'est pas dans le chemin /etc/systemd :

% find /etc/systemd/ -name '*pulse*'

Mais :

% find /usr/lib/systemd | grep pulseaudio
/usr/lib/systemd/user/pulseaudio.socket
/usr/lib/systemd/user/pulseaudio.service

J'ai remarqué que quelqu'un d'autre avait ce bug sur redhat :

https://bugzilla.redhat.com/show_bug.cgi?id=1635119

Malheureusement, il a été fermé en tant que NOTABUG sans explication.

Qu'est-ce qu'il faut faire pour tuer ce processus et le conserver, sans avoir à déplacer temporairement le binaire ?

1voto

Mario Galindo Points 11

Dans les dossiers :

/usr/lib/systemd/user/pulseaudio.socket
/usr/lib/systemd/user/pulseaudio.service

Juste en dessous de la ligne :

ConditionUser=!root

Ajouter :

ConditionUser=!gdm

C'est ça !

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X