Ubuntu

在 shell 之間切換,停止目前正在播放的音樂

  • November 5, 2019

當我聽音樂時,我使用Ctrl++更改了虛擬Alt控制台F2,突然音樂暫停了。返回到執行 X 伺服器 ++ 的控制台或在我目前正在使用的控制台中登錄使用者 (++ Ctrl) ,Alt再次開始播放音樂。F7``Ctrl``Alt``F2

Linux(我使用的是 Ubuntu)是一個多使用者作業系統。據我所知,它有 7 個虛擬控制台,使用者可以同時登錄和工作。那麼為什麼會這樣呢?如果我的系統在切換控制台時正在更新,會發生什麼?

Linux 有多個虛擬控制台。Ctrl++在這些控制台Alt之間切換。當您從控制台 7 切換到控制台 2 時,輸入和輸出外圍設備會從控制台 7 重新路由到控制台 2。當控制台 7 處於非活動狀態時,它無法訪問輸入/輸出外圍設備:顯示屏不顯示螢幕,應用程序不接收鍵盤輸入等。F*n*

由於歷史原因,聲音輸入和輸出使用與鍵盤和滑鼠等輸入設備和影片顯示器完全不同的通道。控制台設備(作業系統中的抽象)包括鍵盤和影片,但不包括聲音。Unix 系統上最常見的聲音基本實現獨立於該系統,使用聲音外圍設備的權限是基於組成員資格而不是控制台所有權授予的。這實際上是一個設計缺陷。

Ubuntu 已經進行了設置,以便會話登錄到控制台,並且只有他們才能訪問音頻設備。如果您切換控制台,您將無法訪問音頻設備,除非您也登錄到該其他控制台。這是真正應該從一開始就做的事情,但這並不是因為控制台界面的設計者沒有考慮聲音。

當您切換到另一個控制台時,您的程序會繼續執行,因為 CPU 不是與控制台相關聯,而是與一台機器相關聯:任何在該機器上擁有帳戶的人都可以使用 CPU 時間。其他資源也是如此,例如記憶體和文件(受權限限制)。只有與使用者的互動受控制台所有權的約束。當您切換到未登錄的控制台時,您的聲音將停止播放,因為您的程序失去了訪問聲音輸出設備的權限。

我相信 Ubuntu 通過Polkit實現訪問控制,但我不知道它是如何工作的。

引用自:https://unix.stackexchange.com/questions/211885