Если Ваше приложение нужно в X-сервере по некоторой странной причине, но не делает ничего полезного с ним, дает ему виртуальный X-сервер. Это обычно делается для выполнения веб-браузеров в автоматизированных наборах тестов для веб-приложений — ничье рассмотрение экрана, но веб-браузер не будет работать без одного.
Xvfb создает X-сервер, который “отображается” только к памяти, не к чему-либо видимому. Это не требует никаких аппаратных средств или полномочий.
Самый легкий способ использовать его через Debian xvfb-run
сценарий.
xvfb-run java MyWeirdApp
Если Вы не имеете xvfb-run
, получите его из одной из многих копий в сети или от пакета Debian.
/etc/init.d
сценарии являются неинтерактивными, невход в систему, и они не пытаются получить доступ к X сессиям, потому что они - сервисы 1 в масштабе всей системы Системные службы, не связаны ни с каким конкретным зарегистрированным пользователем, 2, но X сессий всегда принадлежат зарегистрированному пользователю.
Если для Вашего приложения нужен контекст GUI для работы, это не должна быть системная служба. Вы не объяснили, почему этому нужно это или что это делает, но вероятно необходимо использовать ~/.xinitrc
или система запуска Вашей Настольной среды, не init.
1 X приложений и вошли в систему, пользователи могут использовать системную службу, но о чем Вы говорите, наоборот.
2 Сервиса обычно связываются со своим собственным специальным пользователем, но они не зарегистрированы как таковые (и обычно такие пользователи не могут быть зарегистрированы).