Pendant que j'écoutais de la musique, j'ai changé la console virtuelle en utilisant Ctrl+ Alt+ F2, et tout à coup la musique a été interrompue. Revenir à la console qui exécute le serveur X Ctrl+ Alt+ F7ou se connecter à l'utilisateur dans la console que j'utilise actuellement ( Ctrl+ Alt+ F2), recommence la lecture de la musique.
Linux (j'utilise Ubuntu) est un système d'exploitation multi-utilisateurs. Pour autant que je sache, il dispose de 7 consoles virtuelles sur lesquelles les utilisateurs peuvent se connecter et travailler simultanément. Pourquoi cela se produit-il donc? Que se passerait-il si mon système était en cours de mise à jour lors du changement de console?
Réponses:
Linux a plusieurs consoles virtuelles. Ctrl+ Alt+ bascule entre ces consoles. Lorsque vous passez de la console 7 à la console 2, les périphériques d'entrée et de sortie sont redirigés de la console 7 vers la console 2. Lorsque la console 7 est inactive, elle n'a pas accès aux périphériques d'entrée / sortie: l'affichage n'est pas affiché sur l'écran, les applications ne reçoivent pas de saisie au clavier, etc.Fn
Pour des raisons historiques, l'entrée et la sortie audio utilisent des canaux complètement différents des périphériques d'entrée tels que le clavier et la souris et des écrans vidéo. Les périphériques de la console (l'abstraction du système d'exploitation) couvrent le clavier et la vidéo, mais pas le son. L'implémentation de base la plus courante du son sur un système Unix est indépendante de ce système, et l'autorisation d'utiliser les périphériques sonores est accordée en fonction de l'appartenance au groupe plutôt que de la propriété de la console. Il s'agit en fait d'un défaut de conception.
Ubuntu a configuré les choses pour que la session connectée à la console, et seulement eux, ait accès au périphérique audio. Si vous changez de console, vous perdez l'accès au périphérique audio, sauf si vous vous connectez également à cette autre console. C'est ce qui aurait vraiment dû être fait dès le départ, mais ce n'était pas parce que les concepteurs d'interfaces de console ne pensaient pas au son.
Lorsque vous passez à une autre console, vos programmes continuent de fonctionner, car le CPU n'est pas associé à une console mais à une machine: toute personne possédant un compte sur la machine est autorisée à utiliser le temps CPU. Il en va de même pour d'autres ressources telles que la mémoire et les fichiers (sous réserve d'autorisations). Ce ne sont que les interactions avec l'utilisateur qui sont régies par la propriété de la console. Votre son s'arrête lorsque vous passez à une console sur laquelle vous n'êtes pas connecté, car vos programmes perdent le privilège d'accéder au périphérique de sortie audio.
Je crois qu'Ubuntu implémente le contrôle d'accès via Polkit , mais je ne sais pas exactement comment cela fonctionne.
la source
Il y a quelque temps, les gens utilisaient des terminaux informatiques pour entrer des données dans un ordinateur central Unix ou afficher des données à partir de celui-ci. Si l'un des utilisateurs de ce terminal voulait, disons
cat /dev/zero
, la sortie n'a pas été diffusée à tous les terminaux / utilisateurs connectés au même ordinateur central (c'est parce qu'il s'agissait d'un système multi-utilisateurs et que chaque utilisateur pouvait exécuter ses tâches sans affecter les autres utilisateurs) .De nos jours, nous utilisons des terminaux virtuels (ou consoles virtuelles - VC) qui sont des émulations logicielles des terminaux informatiques physiques , et fonctionnent de manière similaire. Si vous êtes connecté sur VC1 et que vous l'exécutez
ls -alR /
, la sortie ne sera pas diffusée à tous les VC et, même si vous basculez vers un autre VC, vousls
continuerez à fonctionner dans VC1 et enverrez sa sortie à VC1 (de la même manière, votre mise à jour La commande continuera à s'exécuter dans le VC que vous avez démarré même si vous passez à un autre VC).Maintenant, le son est un peu différent de la sortie standard, car (par défaut) il utilise le même appareil pour la sortie, peu importe le VC auquel votre utilisateur est connecté, mais votre utilisateur doit être connecté pour avoir accès à la sortie du périphérique audio.
Vous pouvez également consulter ici pour plus de détails concernant VC.
la source
Essayer
De: https://www.reddit.com/r/linux/comments/1ckvhd/keeping_music_playing_across_multiple_terminal/
la source