De X (7) páginas man
DISPLAY NAMES
From the user's perspective, every X server has a display name of the form:
hostname:displaynumber.screennumber
[...]
displaynumber
[...]
To avoid confusion, each display on a machine is assigned a display
number (beginning at 0) when the X server for that display is started.
Como posso encontrar o número de exibição que me foi atribuído?
Ou listar exibições atualmente abertas e seus usuários?
;
antes dodone
.Na sessão X, você sempre pode consultar a
DISPLAY
variável de ambiente para obter o número de exibição atual (echo $DISPLAY
).Descobrir os números de exibição dos outros é mais difícil. Eu não acho que exista uma maneira padrão de obter as informações além de perguntar a todos os usuários que exibem que estão conectados, portanto, qualquer tentativa de obter essas informações requer algum tipo de hackeria e não funcionará para todos os casos.
Existem algumas opções dadas em outros lugares no SE, mas elas não funcionam no Debian Wheezy, por exemplo. No entanto, listar as exibições atualmente ativas é fácil, conforme mostrado na postagem vinculada acima:
ps axu | grep "X "
irá mostrar-lhe os processos X que estão atualmente em execução, algo como o seguinte:O primeiro parâmetro depois
/usr/bin/X
é o número de exibição prefixado por dois pontos, e o próximo mostra o terminal virtual atribuído à sessão.Você pode conseguir que você responda olhando a lista de processos, embora:
ps axu |grep -3 "X "
Observe as linhas depois
/usr/bin/X
- quando a sessão X é iniciada, um gerenciador de janelas é normalmente iniciado como o usuário ao qual a sessão pertence, e lá você obtém o nome de usuário. No meu caso, o user_1 está usando o KDE e o user_2 está usando o LXDE. No entanto, essa solução depende exclusivamente do fato de que o kernel está atribuindo novos IDs de processo em seqüência crescente, o que pode não ser o caso sempre.fonte
/proc/$pid/environ
, como emcat /proc/$$/environ | tr '\0' '\n' | grep '^DISPLAY='
. Veja minha resposta para outro exemplo de uso.Esta resposta tem um one-liner, baseado em
who
& grephttps://askubuntu.com/a/230838/152287
who
pode ser abreviado comow
Você pode ler mais no link, incluindo um one-liner para obter o valor.
Funciona. Aqui está a saída raspberrypi (rasbian), em que o valor de exibição está na coluna FROM
fonte
https://gitorious.org/termsql/pages/Home
termsql
é uma boa ferramenta para extrair informações como essa.Descobrir o número do DISPLAY é um dos exemplos:
(configure a variável de ambiente DISPLAY para a exibição em que o X está sendo executado agora, supondo que o binário X seja chamado
Xorg.bin
)fonte
Uma pequena variação na resposta de Amir.
ps e
irá gerar o ambiente de cada comando, separado por espaço para que possa ser passado diretamentesed
para o filtro DISPLAY, dando um comando mais simples do que lendo / proc / PID / environ diretamente. (Para ler os ambientes de outros usuários, você ainda precisa de permissões de root.)Esse código mostrará os nomes de todos os usuários conectados com sessões X e seus números de exibição:
fonte