Enquanto ouvia música, mudei o console virtual usando Ctrl+ Alt+ F2e, de repente, a música foi pausada. Retornando ao console que executa o servidor X Ctrl+ Alt+ F7ou efetuando login no usuário no console que estou usando no momento ( Ctrl+ Alt+ F2), começa a reproduzir a música novamente.
Linux (eu estou usando o Ubuntu) é um sistema operacional multiusuário. Até onde eu sei, ele possui 7 consoles virtuais nos quais os usuários podem fazer logon e trabalhar simultaneamente. Então, por que isso está acontecendo? O que aconteceria se meu sistema estivesse atualizando enquanto trocava de console?
Respostas:
O Linux possui vários consoles virtuais. Ctrl+ Alt+ alterna entre esses consoles. Quando você alterna do console 7 para o console 2, os periféricos de entrada e saída são redirecionados do console 7 para o console 2. Quando o console 7 está inativo, ele não tem acesso aos periféricos de entrada / saída: a tela não é exibida na tela, os aplicativos não recebem entrada do teclado etc.Fn
Por razões históricas, a entrada e saída de som usa canais completamente diferentes dos dispositivos de entrada, como teclado e mouse, e das telas de vídeo. Os dispositivos de console (a abstração no sistema operacional) cobrem teclado e vídeo, mas não som. A implementação básica mais comum do som em um sistema Unix é independente desse sistema, e a permissão para usar os periféricos de som é concedida com base na associação ao grupo e não na propriedade do console. Isso é de fato uma deficiência de design.
O Ubuntu configurou as coisas para que a sessão registrada no console, e somente elas, tenha acesso ao dispositivo de áudio. Se você alternar entre os consoles, perde o acesso ao dispositivo de áudio, a menos que também faça login no outro console. Isso é o que realmente deveria ter sido feito desde o início, mas não foi porque os designers de interfaces de console não estavam pensando em som.
Quando você muda para outro console, seus programas continuam em execução, porque a CPU não está associada a um console, mas a uma máquina: qualquer pessoa com uma conta na máquina pode usar o tempo da CPU. O mesmo vale para outros recursos, como memória e arquivos (sujeitos a permissões). Apenas as interações com o usuário são controladas pela propriedade do console. Seu som para de tocar quando você muda para um console em que não está conectado, porque seus programas perdem o privilégio de acessar o dispositivo de saída de som.
Acredito que o Ubuntu implementa o controle de acesso via Polkit , mas não sei exatamente como isso funciona.
fonte
Há um tempo, as pessoas usavam terminais de computador para inserir dados ou exibir dados de um mainframe Unix. Se algum desses usuários do terminal quisesse, digamos,
cat /dev/zero
a saída não foi transmitida para todos os terminais / usuários conectados ao mesmo mainframe (isso é porque era um sistema multiusuário e cada usuário poderia executar suas tarefas sem afetar outros usuários) .Atualmente, estamos usando terminais virtuais (ou consoles virtuais - VC) que são emulações de software dos terminais físicos do computador e funcionam de maneira semelhante. Se você estiver conectado ao VC1 e executado
ls -alR /
, a saída não será transmitida para todos os VCs e, mesmo se você alternar para outro VC, vocêls
continuará executando no VC1 e enviará a saída para o VC1 (da mesma forma, sua atualização O comando continuará sendo executado no VC em que você o iniciou, mesmo que você mude para outro VC).Agora, o som é um pouco diferente da saída padrão, pois (por padrão) ele usa o mesmo dispositivo para a saída, independentemente do VC em que seu usuário estiver conectado, mas seu usuário precisa estar conectado para ter acesso à saída do Dispositivo de som.
Você também pode dar uma olhada aqui para mais detalhes sobre o VC.
fonte
Experimentar
De: https://www.reddit.com/r/linux/comments/1ckvhd/keeping_music_playing_across_multiple_terminal/
fonte