Запуск программ с графическим интерфейсом без диспетчера отображения
9
Я слышал, что есть способ запуска программ с графическим интерфейсом без диспетчера отображения - прямо с терминала. Это реально, и если да, то как я могу это сделать?
Вы можете запустить их без диспетчера отображения, но вам нужен запущенный сеанс X. Какой дистрибутив вы используете? У вас установлен X-сервер? Ты можешь бежать xinitили startx?
тердон
@terdon Да, я сейчас работаю с lmint, но вопрос больше для общих знаний (не для дистрибутивных целей).
Вы можете запустить их без диспетчера отображения, но вам нужен запущенный сеанс X. Детали будут зависеть от вашего дистрибутива, но вы сможете получить минимальный сеанс X с одним терминалом, запустив
xinit
Я не делал этого годами, но в прошлый раз это выглядело бы примерно так:
Оказавшись там, вы можете нормально запустить программу с графическим интерфейсом, предпочтительно запустив ее в фоновом режиме (с &), чтобы не потерять доступ к своему единственному терминалу.
Возможно, стоит упомянуть, что «их нормальная работа», скорее всего, будет включать в себя фоновый процесс, поэтому вы, скорее всего, захотите использовать xterm &для получения дополнительного терминала, а не просто xterm. И т.д.
CVn
6
Вот основные принципы запуска приложения с графическим интерфейсом без заголовка и способа ( vnc) подключения к нему. Работает на RHEL7и Centos 7с семьей. И вырвал мой собственный Docker-образ, который я использую для Crashplan, расположенный по адресу https://github.com/xeor/dockerfiles/tree/master/crashplan/ (см. По Dockerfileнастройке и init/setupпо запуску.
# Needed environment variables
export DISPLAY=:99.0
export SCREEN_WIDTH=1200
export SCREEN_HEIGHT=960
export SCREEN_DEPTH=24
export GEOMETRY="${SCREEN_WIDTH}x${SCREEN_HEIGHT}x${SCREEN_DEPTH}"
# Needed packages
yum install -y xorg-x11-server-Xvfb x11vnc gtk2 xorg-x11-fonts-*
# Set a password (if variable vncpass is sat, else its `secret`)
mkdir -p ~/.vnc && x11vnc -storepasswd ${vncpass:-secret} ~/.vnc/passwd
# Start up the fake display and run the application you want (the `java ...` part)
xvfb-run --server-args="$DISPLAY -screen 0 $GEOMETRY -ac +extension RANDR" java .... > log/ui_output.log 2> log/ui_error.log &
# Wait for the app to start, or else, the vnc server will die before starting
sleep 5
# vnc itself
x11vnc -forever -usepw -shared -rfbport 5900 -display $DISPLAY
Теперь вы должны иметь возможность подключиться к серверу: 5900 и увидеть приложение.
Да. Просто делайте то же, что делает менеджер дисплеев. Помимо графического экрана входа в систему (который в данном случае вам не нужен), менеджер дисплеев выполняет только две вещи:
Сначала он запускает X11 «сервер дисплея», такой как Xorg,
затем запускает «клиентов», которые сообщают Xorg, что и где рисовать.
Вы можете использовать такие инструменты, как startxзапуск X11 таким же образом из консоли входа в систему; он запустит Xorg, а затем клиентов, перечисленных в вашем ~/.xinitrcфайле.
Например, файл .xinitrc может иметь startkdeили gnome-session, или он может перечислять отдельные компоненты (оконный менеджер, панель / панель задач, рабочий стол ...)
(Обратите внимание, что между xinitи есть некоторые различия startx- обычно вам следует использовать последнее, поскольку в некоторых дистрибутивах есть несколько важных частей конфигурации, которые игнорирует обычный xinit, а именно xserverrcсценарий.)
С Wayland рабочий стол и панели являются неотъемлемой частью «композитора», поэтому весь интерфейс запускается за один шаг без дополнительных инструментов. Например, вы можете запустить westonили запустить GNOME используя gnome-session --session=gnome-wayland.
Вы можете запускать X-приложения, используя ssh X forwarding (ssh -X; возможно, также необходимо включить его в конфигурации сервера), если у вас есть локальный X-дисплей.
Приложение будет запускаться и отображаться локально при работе в автономной системе. Вам нужно будет установить X в системе без монитора, чтобы иметь нужные библиотеки, и это может не работать с более современными приложениями GNOME.
Вы также можете использовать $DISPLAYдля запуска приложений на подключенном X-дисплее, даже если ваша оболочка является удаленной (ssh или console). Если вы являетесь пользователем root, а человек, вошедший в систему на дисплее X, не является пользователем, вы можете переопределить xauthзащиту и в любом случае открыть окно на их дисплее. Это также работает, если у вас есть два разных сервера X Display на разных мониторах.
Другой плакат упоминает VNC; Я также использовал NX для этой цели, и я предпочитаю это.
xinit
илиstartx
?Ответы:
Вы можете запустить их без диспетчера отображения, но вам нужен запущенный сеанс X. Детали будут зависеть от вашего дистрибутива, но вы сможете получить минимальный сеанс X с одним терминалом, запустив
Я не делал этого годами, но в прошлый раз это выглядело бы примерно так:
Оказавшись там, вы можете нормально запустить программу с графическим интерфейсом, предпочтительно запустив ее в фоновом режиме (с
&
), чтобы не потерять доступ к своему единственному терминалу.источник
xterm &
для получения дополнительного терминала, а не простоxterm
. И т.д.Вот основные принципы запуска приложения с графическим интерфейсом без заголовка и способа (
vnc
) подключения к нему. Работает наRHEL7
иCentos 7
с семьей. И вырвал мой собственный Docker-образ, который я использую для Crashplan, расположенный по адресу https://github.com/xeor/dockerfiles/tree/master/crashplan/ (см. ПоDockerfile
настройке иinit/setup
по запуску.Теперь вы должны иметь возможность подключиться к серверу: 5900 и увидеть приложение.
источник
Да. Просто делайте то же, что делает менеджер дисплеев. Помимо графического экрана входа в систему (который в данном случае вам не нужен), менеджер дисплеев выполняет только две вещи:
Вы можете использовать такие инструменты, как
startx
запуск X11 таким же образом из консоли входа в систему; он запустит Xorg, а затем клиентов, перечисленных в вашем~/.xinitrc
файле.Например, файл .xinitrc может иметь
startkde
илиgnome-session
, или он может перечислять отдельные компоненты (оконный менеджер, панель / панель задач, рабочий стол ...)(Обратите внимание, что между
xinit
и есть некоторые различияstartx
- обычно вам следует использовать последнее, поскольку в некоторых дистрибутивах есть несколько важных частей конфигурации, которые игнорирует обычный xinit, а именноxserverrc
сценарий.)С Wayland рабочий стол и панели являются неотъемлемой частью «композитора», поэтому весь интерфейс запускается за один шаг без дополнительных инструментов. Например, вы можете запустить
weston
или запустить GNOME используяgnome-session --session=gnome-wayland
.источник
Вы можете запускать X-приложения, используя ssh X forwarding (ssh -X; возможно, также необходимо включить его в конфигурации сервера), если у вас есть локальный X-дисплей.
Приложение будет запускаться и отображаться локально при работе в автономной системе. Вам нужно будет установить X в системе без монитора, чтобы иметь нужные библиотеки, и это может не работать с более современными приложениями GNOME.
Вы также можете использовать
$DISPLAY
для запуска приложений на подключенном X-дисплее, даже если ваша оболочка является удаленной (ssh или console). Если вы являетесь пользователем root, а человек, вошедший в систему на дисплее X, не является пользователем, вы можете переопределитьxauth
защиту и в любом случае открыть окно на их дисплее. Это также работает, если у вас есть два разных сервера X Display на разных мониторах.Другой плакат упоминает VNC; Я также использовал NX для этой цели, и я предпочитаю это.
источник