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.
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
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
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
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
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
.)
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.
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
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.
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.