Uruchamianie programów z GUI bez menedżera wyświetlania

9

Słyszałem, że istnieje sposób uruchamiania programów z interfejsem graficznym bez menedżera wyświetlania - bezpośrednio z terminala. Czy to prawda, a jeśli tak, jak mogę to zrobić?

Ben
źródło
Czy potrzebujesz interakcji z GUI?
Daniel B
@DanielB tak, prawdopodobnie
Ben
1
Możesz je uruchomić bez menedżera wyświetlania, ale potrzebujesz uruchomionej sesji X. Jakiej dystrybucji używasz? Czy masz zainstalowany serwer X? Umiesz biegać xinitczy startx?
terdon
@terdon tak, obecnie korzystam z lmint, ale pytanie dotyczy bardziej ogólnej wiedzy (nie jest to dystrybucja ukierunkowana).
Ben
powiązane superuser.com/questions/407043/…
Ciro Santilli 冠状 病毒 审查 六四 事件 法轮功

Odpowiedzi:

5

Możesz je uruchomić bez menedżera wyświetlania, ale potrzebujesz uruchomionej sesji X. Szczegóły będą zależeć od twojej dystrybucji, ale powinieneś być w stanie uzyskać minimalną sesję X z jednym terminalem, uruchamiając

xinit

Nie robiłem tego od lat, ale ostatnim razem to dałoby coś takiego:

wprowadź opis zdjęcia tutaj

Tam możesz normalnie uruchomić program GUI, najlepiej uruchamiając go w tle (z &), aby nie stracić dostępu do swojego jedynego terminala.

terdon
źródło
2
Warto wspomnieć, że „normalne ich uruchomienie” najprawdopodobniej pociąga za sobą proces tworzenia tła, więc najprawdopodobniej będziesz chciał użyć xterm &dodatkowego terminala, nie tylko xterm. Itd.
CVn
6

Oto podstawowe informacje na temat uruchamiania aplikacji GUI bez użycia głowy, wraz ze sposobem ( vnc), aby się z nią połączyć. Prace nad RHEL7i Centos 7, z rodziną. I wyrwałem własny obraz Dockera, którego używam do Crashplana, znajdujący się pod adresem https://github.com/xeor/dockerfiles/tree/master/crashplan/ (patrz Dockerfilekonfiguracja i init/setupuruchomienie).

# 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

Powinieneś być teraz w stanie połączyć się z serwerem: 5900 i zobaczyć aplikację.

Xeor
źródło
3

Tak. Po prostu rób te same czynności, co robi menedżer wyświetlania. Oprócz graficznego ekranu logowania (który w tym przypadku nie jest potrzebny) menedżer wyświetlania wykonuje tylko dwie czynności:

  1. Najpierw uruchamia „serwer wyświetlania” X11, taki jak Xorg,
  2. następnie uruchamiają „klientów”, którzy mówią Xorgowi, co i gdzie rysować.

Możesz użyć narzędzi takich jak startxuruchomienie X11 w taki sam sposób z poziomu logowania do konsoli; uruchomi Xorg, a następnie klientów wymienionych w twoim ~/.xinitrcpliku.

Na przykład plik .xinitrc może zawierać startkdelub gnome-session, lub może zawierać listę poszczególnych składników (menedżer okien, panel / pasek zadań, pulpit ...)

(Zauważ, że istnieją pewne różnice między xiniti startx- zwykle powinieneś użyć tego drugiego, ponieważ niektóre dystrybucje mają kilka ważnych elementów konfiguracji, które zwykły xinit zignoruje, a mianowicie xserverrcskrypt).

W Wayland pulpit i panele są zintegrowaną częścią „kompozytora”, więc cały interfejs rozpoczyna się w jednym kroku bez dodatkowych narzędzi. Na przykład możesz uruchomić westonlub uruchomić GNOME za pomocą gnome-session --session=gnome-wayland.

użytkownik1686
źródło
1

Możesz uruchamiać aplikacje X za pomocą przekierowania ssh X (ssh -X; może być konieczne włączenie również w konfiguracji serwera), pod warunkiem, że masz lokalny wyświetlacz X.

Aplikacja uruchomi się i wyświetli lokalnie podczas pracy w systemie bezgłowym. Musisz mieć X zainstalowany w systemie bezgłowym, aby mieć odpowiednie biblioteki, a to może nie działać w przypadku bardziej nowoczesnych aplikacji GNOME.

Możesz także używać $DISPLAYdo uruchamiania aplikacji na podłączonym wyświetlaczu X, nawet jeśli twoja powłoka jest zdalna (ssh lub konsola). Jeśli jesteś rootem, a osoba zalogowana na ekranie X nie jest, możesz pominąć xauthzabezpieczenia i wyskoczyć okno na ich ekranie. Działa to również, jeśli masz dwa różne serwery wyświetlania X na różnych monitorach.

Kolejny plakat wspomina o VNC; Użyłem również NX do tego celu i wolę to.

pjc50
źródło
Odpowiedź jest niezwiązana, ale przydatna
Ben