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ć?
xinit
czy startx
?
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ć?
xinit
czy startx
?
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
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.
xterm &
dodatkowego terminala, nie tylko xterm
. 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 nad RHEL7
i 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 Dockerfile
konfiguracja i init/setup
uruchomienie).
# 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:
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
lub 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 xinit
i 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 xserverrc
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
.
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.