J'ai entendu dire qu'il existe un moyen de lancer des programmes avec une interface graphique sans gestionnaire d'affichage - directement depuis le terminal. Est-ce vrai et si oui, comment faire?
xinit
ou startx
?
J'ai entendu dire qu'il existe un moyen de lancer des programmes avec une interface graphique sans gestionnaire d'affichage - directement depuis le terminal. Est-ce vrai et si oui, comment faire?
xinit
ou startx
?
Réponses:
Vous pouvez les exécuter sans gestionnaire d'affichage, mais vous avez besoin d'une session X en cours d'exécution. Les détails dépendront de votre distribution mais vous devriez pouvoir obtenir une session X minimale avec un seul terminal en exécutant
xinit
Je ne l'ai pas fait depuis des années mais, la dernière fois que je l'ai fait, cela donnerait quelque chose comme ceci:
Une fois sur place, vous pouvez exécuter un programme GUI normalement, de préférence en le lançant en arrière-plan (avec &
) afin de ne pas perdre l'accès à votre seul terminal.
xterm &
pour obtenir un terminal supplémentaire, pas seulement xterm
. Etc.
Voici les bases pour exécuter une application GUI sans tête, avec un moyen ( vnc
) de s'y connecter. Fonctionne sur RHEL7
et Centos 7
, en famille. Et arraché de ma propre image Docker que j'utilise pour Crashplan située à https://github.com/xeor/dockerfiles/tree/master/crashplan/ (voir Dockerfile
pour la configuration et init/setup
pour le démarrage.
# 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
Vous devriez maintenant pouvoir vous connecter au serveur: 5900 et voir l'application.
Oui. Faites simplement les mêmes choses qu'un gestionnaire d'affichage. Mis à part l'écran de connexion graphique (dont vous n'avez pas besoin dans ce cas), le gestionnaire d'affichage ne fait que deux choses:
Vous pouvez utiliser des outils comme startx
pour démarrer X11 de la même manière à partir d'une connexion à la console; il lancera Xorg suivi des clients répertoriés dans votre ~/.xinitrc
fichier.
Par exemple, le fichier .xinitrc pourrait avoir startkde
ou gnome-session
, ou il pourrait lister les composants individuels (le gestionnaire de fenêtres, un panneau / barre des tâches, un bureau ...)
(Notez qu'il existe des différences entre xinit
et startx
- vous devez généralement utiliser ce dernier, car certaines distributions ont quelques éléments de configuration importants que plain xinit ignorera, à savoir le xserverrc
script.)
Avec Wayland, le bureau et les panneaux font partie intégrante du "compositeur", de sorte que toute l'interface démarre en une seule étape sans outils supplémentaires. Par exemple, vous pouvez exécuter weston
ou démarrer GNOME à l'aide de gnome-session --session=gnome-wayland
.
Vous pouvez lancer des applications X à l'aide du transfert ssh X (ssh -X; il peut également être nécessaire d'activer la configuration du serveur), à condition que vous disposiez d'un affichage X local .
L'application se lancera et s'affichera localement, tout en fonctionnant sur un système sans tête. Vous aurez besoin d'avoir X installé sur le système sans tête afin d'avoir les bonnes bibliothèques, et cela peut ne pas fonctionner avec des applications GNOME plus modernes.
Vous pouvez également utiliser $DISPLAY
pour lancer des applications sur un écran X attaché même si votre shell est distant (ssh ou console). Si vous êtes root et que la personne connectée sur l'écran X ne l'est pas, vous pouvez annuler la xauth
sécurité et ouvrir une fenêtre sur son écran de toute façon. Cela fonctionne également si vous avez deux serveurs d'affichage X différents sur des moniteurs différents.
Une autre affiche mentionne VNC; J'ai également utilisé NX à cet effet, et je le préfère.