Como definir a variável DISPLAY para um processo?

2

Eu tento executar o pgadmin3 como usuário postgres e recebo o seguinte erro:

No protocol specified
Error: Unable to initialize gtk, is DISPLAY set properly?

O comando pgadmin3 corre bem sob o pavel (minha conta de usuário principal).

As respostas de uma pergunta sobre isso sugeriram alguma mágica de conexão ao servidor (não é o meu caso - eu tento executá-lo no localhost) ou definindo a variável DISPLAY. Eu verifiquei através do printenv tanto no pavel quanto no postgres, e é: 0 para ambos. Eu usei o truque para encontrar quais processos possuem a variável DISPLAY sob ambos os usuários. Para o pavel, há uma lista muito longa com os valores DISPLAY: 0 (para a maioria dos processos, incluindo o pgadmin) ou: 0.0 (para alguns). Mas para o postgres, existem apenas três ou quatro processos na lista.

Aqui estou onde estou: como definir uma variável de ambiente (DISPLAY, nesse caso) para um processo? Ou melhor, para combinação de aplicativo / usuário, de modo que o processo veria a configuração DISPLAY desde o início. Eu já tentei hardcode DISPLAY em ETC / AMBIENTE, mas nada mudou - afeta o valor DISPLAY, onde é definido (para usuários e processos), mas não a sua visibilidade para processos executados pelos usuários.

    
por Pavel V. 30.10.2014 / 08:47

1 resposta

3

Parece que você sudo 'd para o usuário postgres então tentou executar o Pgadmin de lá.

Não faça isso.

Execute o PgAdmin como seu usuário comum, sem sudo . Você pode precisar criar uma conta de usuário no banco de dados e / ou editar pg_hba.conf para permitir as conexões primeiro, mas, quando isso for feito, você poderá usar o PgAdmin.

    
por Craig Ringer 30.10.2014 / 12:13