Isso está resolvido. O script original estava obtendo um script de shell que possui uma instrução gsettings
, que não era destinada a ser executada em um contexto de servidor. A simples remoção dessa declaração resolveu o problema.
Eu tenho um processo personalizado do servidor xinetd que anteriormente funcionava, mas agora gera erros quando as mensagens de aviso do dconf são impressas no fluxo de saída. Eu acho que é um problema de configuração, mas não consigo descobrir como resolvê-lo. Eu estou recebendo o mesmo problema em várias máquinas (que todos executam sabores do Ubuntu 17.04). Funcionou até uma atualização no início do ano.
O texto da mensagem a seguir aparece no fluxo de saída:
(process:13179): dconf-WARNING **: failed to commit changes to dconf: Cannot
autolaunch D-Bus without X11 $DISPLAY
Um pouco de informação de fundo:
Um processo do servidor xinetd simplesmente grava no stdout e lê stdin, que xinetd redireciona para uma porta. É ótimo porque o xinetd faz a comunicação de nível inferior. Mas o xinetd não configura todas as informações de contexto do usuário. Por esse motivo, tenho um script de shell que configura essas informações. Aqui está o que o script de shell parece.
#!/bin/sh
export USER=erik
export HOME=/home/$USER
#export DISPLAY=':0'
. $HOME/.bashrc
. $HOME/.postm/bin/additions.txt
cd $HOME
runserver
O comando final runserver
é um processo do servidor HTTP personalizado que lê stdin e grava no stdout. Eu posso executá-lo a partir do terminal e inserir solicitações manualmente e obter respostas sem gerar erros ou mensagens de aviso.
Observe que uma das linhas foi comentada. Quando descomenteço essa linha:
export DISPLAY=':0'
O processo demora mais para responder e, em seguida, recebo o seguinte erro:
(process:14160): dconf-WARNING **: failed to commit changes to dconf: Could
not connect: Connection refused
Há uma linha em branco antes desses erros e avisos, o que faz com que eles sejam gravados no texto da página da Web do usuário. Isso confunde o Firefox.
Como o processo funciona bem no terminal e falha no contexto xinetd, acredito que seja porque o dconf está ficando confuso que o processo está rodando no xinetd. Isso deve ser um problema de configuração resolvível, mas eu já tentei muitas coisas e ainda estou preso.
Se alguém tiver conselhos sobre como evitar que essas mensagens de aviso ou erro apareçam no fluxo de saída do meu servidor, eu ficaria muito grato.
Isso está resolvido. O script original estava obtendo um script de shell que possui uma instrução gsettings
, que não era destinada a ser executada em um contexto de servidor. A simples remoção dessa declaração resolveu o problema.