ошибки dconf в выходном потоке xinetd

У меня есть собственный серверный процесс xinetd, который раньше работал, но теперь он генерирует ошибки, когда предупреждающие сообщения dconf выводятся в выходной поток. Я думаю, что это проблема конфигурации, но я не могу понять, как ее решить. Я получаю одну и ту же проблему на нескольких машинах (все версии Ubuntu 17.04). Он работал до обновления в начале года.

В выходном потоке появляется следующий текст сообщения:

(process:13179): dconf-WARNING **: failed to commit changes to dconf: Cannot
autolaunch D-Bus without X11 $DISPLAY

Немного справочной информации:

Процесс сервера xinetd просто записывает в stdout и читает из stdin , который xinetd перенаправляет в порт. Это здорово, потому что xinetd осуществляет связь на низком уровне. Но xinetd не устанавливает всю информацию о контексте пользователя. По этой причине у меня есть сценарий оболочки, который устанавливает эту информацию. Вот как выглядит скрипт оболочки.

#!/bin/sh

export USER=erik
export HOME=/home/$USER
#export DISPLAY=':0'

. $HOME/.bashrc
. $HOME/.postm/bin/additions.txt

cd $HOME
runserver

Последняя команда runserver - это пользовательский процесс HTTP-сервера, который читает stdin и записывает в stdout. Я могу запустить его из терминала и вручную вводить запросы и получать ответы, не генерируя ошибок или предупреждений.

Обратите внимание, что одна из строк закомментирована. Когда я раскомментирую эту строку:

export DISPLAY=':0'

Процесс занимает больше времени, чтобы ответить, и затем я получаю следующую ошибку:

(process:14160): dconf-WARNING **: failed to commit changes to dconf: Could
not connect: Connection refused

Перед этими ошибками и предупреждениями стоит пустая строка, что заставляет их быть записаны в текст веб-страницы пользователя. Это смущает Firefox.

Так как процесс отлично работает с терминала и завершается с ошибкой в ​​контексте xinetd, я полагаю, что из-за того, что dconf запутался, этот процесс теперь выполняется в xinetd. Это должно быть решаемой проблемой конфигурации, но я много чего перепробовал и все еще застрял.

Если у кого-нибудь есть советы, как не допустить появления этих предупреждений или сообщений об ошибках в выходном потоке моего сервера, я был бы признателен.

1
задан 26 November 2017 в 00:24

1 ответ

Это решено. Исходный сценарий был источником сценария оболочки, в котором есть оператор gsettings, который не предназначен для запуска в контексте сервера. Простое удаление этого утверждения решило проблему.

0
ответ дан 26 November 2017 в 00:24

Другие вопросы по тегам:

Похожие вопросы: