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ć?
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).
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:
Tam możesz normalnie uruchomić program GUI, najlepiej uruchamiając go w tle (z &), aby nie stracić dostępu do swojego jedynego terminala.
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ę.
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:
Najpierw uruchamia „serwer wyświetlania” X11, taki jak Xorg,
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.
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.
xinit
czystartx
?Odpowiedzi:
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
Nie robiłem tego od lat, ale ostatnim razem to dałoby coś takiego:
Tam możesz normalnie uruchomić program GUI, najlepiej uruchamiając go w tle (z
&
), aby nie stracić dostępu do swojego jedynego terminala.źródło
xterm &
dodatkowego terminala, nie tylkoxterm
. Itd.Oto podstawowe informacje na temat uruchamiania aplikacji GUI bez użycia głowy, wraz ze sposobem (
vnc
), aby się z nią połączyć. Prace nadRHEL7
iCentos 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/ (patrzDockerfile
konfiguracja iinit/setup
uruchomienie).Powinieneś być teraz w stanie połączyć się z serwerem: 5900 i zobaczyć aplikację.
źródło
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:
Możesz użyć narzędzi takich jak
startx
uruchomienie X11 w taki sam sposób z poziomu logowania do konsoli; uruchomi Xorg, a następnie klientów wymienionych w twoim~/.xinitrc
pliku.Na przykład plik .xinitrc może zawierać
startkde
lubgnome-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
xinit
istartx
- zwykle powinieneś użyć tego drugiego, ponieważ niektóre dystrybucje mają kilka ważnych elementów konfiguracji, które zwykły xinit zignoruje, a mianowiciexserverrc
skrypt).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ć
weston
lub uruchomić GNOME za pomocągnome-session --session=gnome-wayland
.źródło
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ć
$DISPLAY
do 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ąćxauth
zabezpieczenia 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.
źródło