web-dev-qa-db-fra.com

Comment commence Pullevoo?

Pulletoudio est toujours en cours d'exécution sur mon système et redémarre toujours instantanément s'il s'écrase ou je le tue. Cependant, je n'ai jamais début pulleudio.

J'ai vérifié /etc/init.d/ et /etc/X11/Xsession.d/, et j'ai vérifié systemctl list-units -a, et Pulleudio n'est nulle part où on trouve nulle part.

Comment se fait-il que Pullevio apparemment commence par magie par-même par elle-même sans que je l'exécute jamais, et comment le redémarre-t-il instantanément quand il meurt?

J'utilise Debian 8 (Jessie) avec Xinit et le gestionnaire de fenêtres I3 et Pulseaudio 5.

20
Hubro

Pulseaudio est un petit démon. man pulseaudio dit que vous pouvez l'éteindre avec la commande pulseaudio --kill Mais cela prend la renaissance de nouveau-- elle répandit elle-même. Un script Init normal est là pour la démarrer au démarrage, /etc/rc2.d/S50pulseaudio. Mais lorsque vous essayez de contrôler cela la façon Linux normale, cela ne fonctionne pas, car courir /etc/init.d/pulseaudio stop ne l'arrête pas. Suppression /etc/rc2.d/S50pulseaudio ne l'empêche pas de commencer à démarrer.

Pour arrêter sa capacité de repensation, Open /etc/Pulse/client.conf, monnaie autospawn = yes à autospawn = no, et mettre démon-binaire à /bin/true. Assurez-vous que ces lignes sont décontractées, comme ceci:

 autospawn = no
 daemon-binary = /bin/true

Maintenant, nous pouvons faire face aux fichiers de démarrage Linux normaux. Premier Supprimer /etc/rc2.d/S50pulseaudio. Ou vous pouvez le renommer à une commande Kill, qui conserve le lien au cas où vous le souhaitez à nouveau:

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

OR

Il peut y avoir un autre fichier de démarrage pour se dispenser avec: /etc/X11/Xsession.d/70pulseaudio. Cela commence le pouls lorsqu'une session Gnome commence. Supprimez-le ou copiez-le sur un répertoire différent au cas où vous souhaitez l'enregistrer, puis vérifiez le nom du fichier exact. Un tour utile, lorsque vous trouvez des scripts qui commencent à Pullevodio, est de changer le binaire qu'ils appellent de /usr/bin/pulseaudio à /bin/true. C'est un joli petit exécutable dont le seul travail est de "ne rien faire, avec succès". Il garde les scripts heureux et c'est un espace réservé pratique si vous voulez le changer.

Maintenant que vous avez purgé toutes les scripts de démarrage et de visualisation, utilisez maintenant les commandes ci-dessous pour arrêter et démarrer l'audio d'impulsion.

 $ pulseaudio --kill
 $ pulseaudio --start
4
Thushi

Comment le pullevéo commence-t-il?

Bien que cela soit toujours une question valable, la réponse qu'elle a changé au fil du temps. Les réponses précédentes sont soit insuffisantes, soit incorrectes, car maintenant PulseAudio est automatiquement lancée par la SystemD de l'utilisateur, qui a été lancée à son tour par le système SystemD du système lorsque l'utilisateur s'est connecté.

$ 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

Tuer pulseaudio

Pour arrêter le processus de pulseaudio et que cela ne lance pas immédiatement une nouvelle instance, utilisez systemctl --user stop:

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

Désactiver le pullevédio

Si vous ne souhaitez pas que PulSeudio commence automatiquement lors de la connexion, vous pouvez le désactiver comme si:

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

(En passant, même avec elle handicapée, vous pouvez toujours démarrer Pullevodio lorsque vous le souhaitez en utilisant systemctl --user start.)


Répondre à la question en général

Les commandes ci-dessus sont tout ce dont vous avez besoin. Toutefois, si vous êtes intéressé par la manière de déterminer la solution à vous-même, continuez à lire.

Pour savoir quels processus ont la carte son ouverte

Utilisez soit le lsof ou fuser -v Commandes de voir quels processus ont les fichiers de périphérique ouverts.

$ 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

Pour savoir quel processus a lancé Pulleudio

Utilisation pstree -s Pour montrer les processus parents comme SO:

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

J'ai utilisé cela pour voir que Pulletoudio était réellement lancé par une instance de systemd (PID 738) qui fonctionnait dans mon propre compte:

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

De là, il est facile de deviner que l'on doit utiliser systemctl --user Pour l'arrêter.

1
hackerb9

La réponse donnée par Thushi/Carla Schroder (voir la réponse suivante) travaille toujours bien après une mise à niveau de Debian Wheezy à Jessie. J'ai eu l'erreur suivante après la recherche Mes messages de démarrage (l'erreur est répertoriée dans la dernière ligne).

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 a été lancé deux fois. Une fois par le démon rtkit et les autres fois par Gnome/Kde Autostart ou une autre application. Quoi qu'il en soit dans le cadre de /etc/pulse/client.conf

autospawn = no
daemon-binary = /bin/true

résolu mon problème. La seule chose ce que je ne peux pas confirmer, c'est qu'il n'y a plus de scripts de démarrage dans des annuaires /etc/rcx.d. Pretty Clear parce que le démon rtkit fait le travail avec interaction de SystemD.

0
FalkH