Я пытался найти эту тему в Google, но без каких-либо существенных результатов.
Мне нужно запустить какое-нибудь приложение с графическим интерфейсом из терминала, но мне все равно, что мне показывает это приложение. Кроме того, мне нужно запустить несколько экземпляров этого приложения в разных сеансах. Это связано с некоторыми автоматизированными тестами с графическим интерфейсом, так что я знаю, чего хочу, и ищу ответ :).
Я думаю, что правильные шаги должны быть:
Инициализировать новый сеанс X window
Получить мой новый идентификатор сеанса
экспортируйте его в переменную env (отображение экспорта: 13.0)
запустите мое приложение
но я застрял на первом шаге. у кого-нибудь здесь была подобная проблема?
--- РЕДАКТИРОВАТЬ: 1) Меня не волнует вывод графического интерфейса - мне нужны только stdout и stderr из моего приложения. - вот почему этот вопрос не дублируется - хорошо знаю Google :). Я не хочу перенаправлять вывод на свой собственный графический интерфейс.
Если вы не хотите видеть, что делает приложение, вы можете предоставить ему "виртуальный" x-сервер с xvfb:
Xvfb предоставляет X-сервер, который может работать на машинах без оборудования отображения и физических устройств ввода. Он эмулирует немой фреймбуфер, используя виртуальную память. Изначально предполагалось, что этот сервер будет использоваться для тестирования сервера, но были найдены и другие новые способы его использования, включая тестирование клиентов на необычных глубинах и конфигурациях экрана, выполнение пакетной обработки с использованием Xvfb в качестве механизма фонового рендеринга, нагрузочное тестирование в качестве вспомогательного средства для переноса X-сервера на новую платформу, и обеспечивает ненавязчивый способ запуска приложений, которые на самом деле не нуждаются в X-сервере, но все равно настаивают на его наличии.
После его установки вы можете запустить его с помощью:
sudo Xvfb :10 -ac -screen 0 1024x768x24 &
он будет работать в фоновом режиме, затем вы запустите своих клиентов с помощью:
-X Enables X11 forwarding. This can also be specified on a per-host basis in a configuration file. X11 forwarding should be enabled with caution. Users with the ability to bypass file permissions on the remote host (for the user's X authorization database) can access the local X11 display through the forwarded connection. An attacker may then be able to perform activities such as keystroke monitoring.
Проверять /etc/ssh/sshd_config на стороне сервера:
sudo nano /etc/ssh/sshd_config
для приведенных ниже строк:
X11Forwarding yesX11UseLocalhost no
Перезапустите ssh-сервер, если вы внесли изменения:
Это непонятно. У вас есть графический рабочий стол, работающий локально? Или вы хотите запустить приложение X без реального отображения, ни локально, ни удаленно?
Rmano: Мне нужно запустить приложение и щелкнуть по нему с помощью robot-framework + selenium library - но мне не нужно видеть никаких выходных данных из графического интерфейса, только логи из моих скриптов - это ответ на ваш вопрос?