Подтвердить что ты не робот

A/dev/null equivalent для DISPLAY, когда дисплей просто шумит

Я запускаю приложение java, которое создает визуальное отображение некоторых вещей, которые он делает, пока он это делает. Тем не менее, я хочу запустить это в script, к которому не будет прикрепляться дисплей. В текущей среде нет даже переменной окружения DISPLAY. Я попытался просто установить мой ДИСПЛЕЙ: 0.0. Но этого не существует. Меня не волнует дисплей. Я просто хочу, чтобы приложение обрабатывало файлы молча.

Так как я не могу просто отключить отображение (а не мое приложение), я остался с попыткой обойти необходимость отображения.

Есть ли черная дыра, на которую я могу отправить DISPLAY? эквивалент /dev/null?

Я немного искал в Интернете, но слова, которые я мог придумать для использования: "display", "null" "disregard" и т.д., - все это два общих для ответа на вопрос.

Это середина более крупного script, поэтому я хочу, чтобы остальная часть вывода в stdout была доступна.

4b9b3361

Ответ 1

Там есть безголовый X-сервер, называемый Xvfb. Это в основном то, что вам нужно, поскольку оно принимает X-клиентов, но в основном ничего не делает с данными из них. На этой связанной странице (слегка перефразированный):

Xvfb, виртуальный фреймбуфер X, является сервером отображения, реализующим протокол сервера отображения X11.

В отличие от других серверов отображения, Xvfb выполняет все графические операции в памяти, не показывая никаких выходных данных экрана.

С точки зрения клиента он действует точно так же, как любой другой сервер отображения X, обслуживая запросы и отправляя события и ошибки, если это необходимо. Однако вывод не выводится.

Этот виртуальный сервер не требует, чтобы компьютер, на котором он запущен, имел экран или любое устройство ввода. Требуется только сетевой уровень.

Если вы не можете найти это, тогда еще одна возможность - использовать запасной компьютер с полной установкой CygWin. CygWin поставляется с полномасштабным X-сервером, к которому вы можете подключить свое приложение (и просто игнорировать его). Вы даже можете настроить его как корпоративный /dev/null DISPLAY.

Но я сначала посмотрю на Xvfb.

Ответ 2

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

Попробуйте запустить его с параметром -Djava.awt.headless=true, например, если это файл jar:

java -Djava.awt.headless=true -jar jarfile.jar

Подробнее о режиме безголоски...

Ответ 3

Вы можете использовать Xvfb, как указано выше. Таким образом, вы никогда не увидите результат (вы можете использовать инструмент для скриншотов).

http://en.wikipedia.org/wiki/Xvfb http://packages.debian.org/sid/xvfb

Или вы можете настроить сервер VNC. В Linux сервер VNC реализован как специальный X-сервер, к которому можно получить доступ через VNC, вместо отображения на локальном мониторе. Это дает вам безголовый X-сервер с добавленным бонусом, который вы можете подключить к нему через VNC на всякий случай, когда вам нужно посмотреть, что происходит.

http://www.tightvnc.com/vncserver.1.html

vncserver - хорошая обертка script для (жесткого) VNC, что делает запуск VNC-сервера бриз. Большинство дистрибутивов должны установить его по умолчанию.

Ответ 4

Можете ли вы запустить виртуальную машину на целевой машине? Тогда вы можете установить для этого ДИСПЛЕЙ. Или вы можете попробовать vnc (в настоящее время на машине, которая не позволяет этого, или я бы попробовал...).