O que é DISPLAY =: 0? [duplicado]

20

O que é DISPLAY=:0 e o que isso significa?

Não é um comando, é? ( gnome-panel é um comando.)

DISPLAY=:0 gnome-panel
    
por Tim 01.04.2015 / 15:31

2 respostas

28

É uma variável de ambiente que é passada apenas para esse programa, em vez do shell como um todo. Isso acontece quando você define uma variável na mesma linha que um comando.

Os programas X11 precisam saber onde exibir janelas, já que é um sistema cliente / servidor e você pode estar exibindo em uma máquina remota. Isso significa simplesmente usar a primeira exibição na máquina local.

Normalmente, isso é configurado automaticamente ao efetuar login em um ambiente de área de trabalho. Por exemplo, abra um terminal gráfico e digite echo $DISPLAY .

    
por 01.04.2015 / 15:34
17

DISPLAY=:0 gnome-panel é um comando shell que executa o comando externo gnome-panel com a variável de ambiente DISPLAY definida como :0 . A sintaxe do shell VARIABLE=VALUE COMMAND define a variável de ambiente VARIABLE apenas para a duração do comando especificado. É aproximadamente equivalente a (export VARIABLE=VALUE; exec COMMAND) .

A variável de ambiente DISPLAY informa aos programas GUI como se comunicar com a GUI. Um sistema Unix pode executar vários servidores X , ou seja, exibição múltipla. Essas exibições podem ser exibições físicas (um ou mais monitores) ou exibições remotas (encaminhadas pela rede, por exemplo, por meio de SSH) ou exibições virtuais, como Xvfb , etc. A sintaxe básica para especificar exibições é HOST:NUMBER ; se você omitir a parte HOST , a exibição será local.

As telas são numeradas de 0, então :0 é a primeira exibição local que foi iniciada. Em configurações típicas, isso é o que é exibido no (s) monitor (es) do computador.

Como todas as variáveis de ambiente, DISPLAY é herdado do processo pai para o processo filho. Por exemplo, quando você faz login em uma sessão da GUI, o gerenciador de login ou o iniciador de sessão define DISPLAY apropriadamente e a variável é herdada por todos os programas da sessão. Quando você abre uma conexão SSH com o encaminhamento X, o SSH define a variável de ambiente DISPLAY para a conexão encaminhada, para que os programas que você executa na máquina remota sejam exibidos na máquina local. Se não houver nenhuma conexão X encaminhada (seja porque o SSH está configurado para não fazê-lo ou porque não há um servidor X local), o SSH não define DISPLAY .

Definir DISPLAY explicitamente faz com que o programa seja exibido em um lugar onde normalmente não seria. Por exemplo, a execução de DISPLAY=:0 gnome-panel em uma conexão SSH inicia um painel Gnome na exibição local da máquina remota (supondo que haja uma e que o usuário esteja autorizado a acessá-la). A definição explícita do DISPLAY=:0 é geralmente uma maneira de acessar a exibição local de uma máquina de fora da sessão local, como por exemplo através de um acesso remoto ou de uma tarefa cron.

    
por 02.04.2015 / 02:44