Podczas słuchania muzyki zmieniłem wirtualną konsolę za pomocą Ctrl+ Alt+ F2i nagle muzyka została zatrzymana. Wracając z powrotem do konsoli, na której działa X serwer Ctrl+ Alt+ F7lub logując się do użytkownika w konsoli, której aktualnie używam ( Ctrl+ Alt+ F2), odtwarzanie muzyki zaczyna się od nowa.
Linux (używam Ubuntu) to system operacyjny dla wielu użytkowników. O ile mi wiadomo, ma 7 wirtualnych konsol, do których użytkownicy mogą logować się i pracować jednocześnie. Dlaczego tak się dzieje? Co by się stało, gdyby mój system aktualizował się podczas zmiany konsoli?
Odpowiedzi:
Linux ma wiele wirtualnych konsol. Ctrl+ Alt+ przełącza między tymi konsolami. Po przełączeniu z konsoli 7 na konsolę 2 urządzenia peryferyjne wejścia i wyjścia są przekierowywane z konsoli 7 na konsolę 2. Gdy konsola 7 jest nieaktywna, nie ma dostępu do urządzeń peryferyjnych wejścia / wyjścia: wyświetlacz nie jest wyświetlany na ekran, aplikacje nie otrzymują danych z klawiatury itp.Fn
Ze względów historycznych wejście i wyjście dźwięku wykorzystuje zupełnie inne kanały niż urządzenia wejściowe, takie jak klawiatura i mysz oraz wyświetlacze wideo. Urządzenia konsoli (abstrakcja w systemie operacyjnym) obejmują klawiaturę i wideo, ale nie dźwięk. Najczęstsza podstawowa implementacja dźwięku w systemie Unix jest niezależna od tego systemu, a zezwolenie na korzystanie z peryferyjnych urządzeń dźwiękowych jest udzielane na podstawie członkostwa w grupie, a nie własności konsoli. Jest to w rzeczywistości brak projektowy.
Ubuntu skonfigurował rzeczy tak, aby sesja zalogowana do konsoli i tylko one miały dostęp do urządzenia audio. Jeśli zmienisz konsolę, utracisz dostęp do urządzenia audio, chyba że zalogujesz się również do tej drugiej konsoli. Tak naprawdę należało zrobić od samego początku, ale nie dlatego, że projektanci interfejsów konsolowych nie myśleli o dźwięku.
Po przełączeniu na inną konsolę twoje programy nadal działają, ponieważ procesor nie jest powiązany z konsolą, ale z komputerem: każdy, kto ma konto na komputerze, może korzystać z czasu procesora. To samo dotyczy innych zasobów, takich jak pamięć i pliki (w zależności od uprawnień). Tylko interakcje z użytkownikiem są regulowane przez prawo własności do konsoli. Dźwięk przestaje być odtwarzany po przejściu na konsolę, na której nie jesteś zalogowany, ponieważ Twoje programy tracą uprawnienia dostępu do urządzenia wyjściowego dźwięku.
Uważam, że Ubuntu wdraża kontrolę dostępu za pośrednictwem Polkit , ale nie wiem dokładnie, jak to działa.
źródło
Jakiś czas temu ludzie używali terminali komputerowych do wprowadzania danych lub wyświetlania danych z mainxame Unixa. Jeśli którykolwiek z użytkowników tego terminalu chciałby, powiedzmy,
cat /dev/zero
dane wyjściowe nie były nadawane do wszystkich terminali / użytkowników podłączonych do tej samej komputera mainframe (to dlatego, że był to system dla wielu użytkowników i każdy użytkownik mógł uruchamiać swoje zadania bez wpływu na innych użytkowników) .W naszych czasach używamy wirtualnych terminali (lub wirtualnych konsol - VC), które są emulacjami oprogramowania fizycznych terminali komputerowych i działają w podobny sposób. Jeśli zalogujesz się na VC1 i uruchomisz
ls -alR /
, dane wyjściowe nie będą transmitowane do wszystkich VC, a nawet jeśli przełączysz się na inny VC,ls
będziesz nadal działał w VC1 i wysyłał go do VC1 (w ten sam sposób, twoja aktualizacja polecenie będzie działało w VC, które uruchomiłeś, nawet jeśli przełączysz się na inny VC).Teraz dźwięk jest nieco inny niż standardowe wyjście, ponieważ (domyślnie) używa tego samego urządzenia do wyjścia bez względu na VC, do którego zalogowany jest użytkownik, ale użytkownik musi być zalogowany, aby mieć dostęp do wyjścia urządzenie dźwiękowe.
Możesz także zajrzeć tutaj, aby uzyskać więcej informacji na temat VC.
źródło
Próbować
Od: https://www.reddit.com/r/linux/comments/1ckvhd/keeping_music_playing_across_multiple_terminal/
źródło