Запуск программ с графическим интерфейсом без диспетчера отображения

11622
Ben

Я слышал, что есть способ запуска программ с графическим интерфейсом без диспетчера отображения - прямо с терминала. Это реально, и если да, то как я могу это сделать?

8
Вам нужно взаимодействовать с GUI? Daniel B 9 лет назад 0
@DanielB да, наверное Ben 9 лет назад 0
Вы можете запустить их без диспетчера отображения, но вам нужен запущенный сеанс X. Какой дистрибутив вы используете? У вас установлен X-сервер? Можете ли вы запустить `xinit` или` startx`? terdon 9 лет назад 1
@terdon Да, я сейчас работаю с lmint, но вопрос больше для общих знаний (не для дистрибутивов). Ben 9 лет назад 0
связанные http://superuser.com/questions/407043/is-it-possible-to-run-graphical-applications-such-as-firefox-without-install Ciro Santilli 新疆改造中心 六四事件 法轮功 7 лет назад 0

4 ответа на вопрос

4
terdon

Вы можете запустить их без диспетчера отображения, но вам нужен запущенный сеанс X. Детали будут зависеть от вашего дистрибутива, но вы сможете получить минимальный сеанс X с одним терминалом, запустив

xinit 

Я не делал этого годами, но в прошлый раз я получил что-то вроде этого:

enter image description here

Оказавшись там, вы можете нормально запустить программу с графическим интерфейсом, предпочтительно запустив ее в фоновом режиме (с &), чтобы не потерять доступ к своему единственному терминалу.

Возможно, стоит упомянуть, что «их нормальная работа», скорее всего, потребует фонового процесса, поэтому вы, скорее всего, захотите использовать `xterm &` для получения дополнительного терминала, а не просто `xterm`. И т.п. a CVn 9 лет назад 2
4
xeor

Вот основы запуска приложения с графическим интерфейсом без заголовка, с возможностью ( 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="$x$x$"  # 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 $ ~/.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 и увидеть приложение.

2
grawity

Да. Просто делайте то же, что делает менеджер дисплеев. Помимо графического экрана входа в систему (который в данном случае вам не нужен), диспетчер отображения выполняет только две вещи:

  1. Сначала он запускает X11 «сервер дисплея», такой как Xorg,
  2. затем запускает «клиентов», которые сообщают Xorg, что и где рисовать.

Вы можете использовать такие инструменты, как startxзапуск X11 таким же образом из консоли входа в систему; он запустит Xorg, а затем клиентов, перечисленных в вашем ~/.xinitrcфайле.

Например, файл .xinitrc может иметь startkdeили gnome-session, или он может перечислять отдельные компоненты (оконный менеджер, панель / панель задач, рабочий стол ...)

(Обратите внимание, что между xinitи есть некоторые различия startx- обычно вы должны использовать последнее, поскольку в некоторых дистрибутивах есть несколько важных частей конфигурации, которые игнорирует обычный xinit, а именно xserverrcсценарий.)

Благодаря Wayland рабочий стол и панели являются неотъемлемой частью «композитора», поэтому весь интерфейс запускается за один шаг без дополнительных инструментов. Например, вы можете запустить westonили запустить GNOME используя gnome-session --session=gnome-wayland.

1
pjc50

Вы можете запускать X-приложения с помощью ssh X forwarding (ssh -X; возможно, также необходимо включить его в конфигурации сервера), если у вас есть локальный X-дисплей.

Приложение будет запускаться и отображаться локально при работе в автономной системе. Вам понадобится установить X в системе без монитора, чтобы иметь нужные библиотеки, и это может не работать с более современными приложениями GNOME.

Вы также можете использовать $DISPLAYдля запуска приложений на подключенном X-дисплее, даже если ваша оболочка является удаленной (ssh или console). Если вы являетесь пользователем root, а человек, вошедший в систему на дисплее X, не является пользователем, вы можете переопределить xauthзащиту и в любом случае открыть окно на их дисплее. Это также работает, если у вас есть два разных сервера X Display на разных мониторах.

Другой плакат упоминает VNC; Я также использовал NX для этой цели, и я предпочитаю это.

Ответ не связан, но полезен Ben 9 лет назад 0

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