Verifique a exibição que um aplicativo está usando

1

A máquina da qual estou trabalhando tem muitos monitores X ativos (um servidor X padrão e muitos monitores VNC). Ele também está executando um punhado de aplicativos GUI, que aparecem em um display X.

Supondo que eu tenha o PID (usando ps ) existe um método para determinar qual é a tela X que o processo está usando, ou mesmo o valor que a variável DISPLAY reteve quando é lançada?

Ainda melhor se houver um método para mostrar o valor de DISPLAY para o processo e todos os seus processos filhos, no caso de alguns processos gerarem sua GUI como um processo filho.

    
por Centimane 15.07.2016 / 14:38

1 resposta

3

Se você tiver root access (ou sudo ps ), poderá exibir o ambiente de um processo com a opção e . Aqui dentro, você poderá ver a variável DISPLAY (se estiver definida). Você provavelmente precisará de ww para garantir que a saída não seja truncada.

por exemplo,

% ps wwep $$ | tr ' ' '2' | grep DISPLAY
DISPLAY=:0

Então meu shell atual está falando com :0 .

Muitos sistemas operacionais protegem o ambiente contra outros usuários (porque podem vazar informações confidenciais), portanto, um usuário normal só pode ver seus próprios ambientes de processo. root pode ver todos os usuários.

    
por 15.07.2016 / 14:54