Lancement de programmes avec GUI sans gestionnaire d'affichage


9

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?


Avez-vous besoin d'interagir avec l'interface graphique?
Daniel B

@DanielB oui, probablement
Ben

1
Vous pouvez les exécuter sans gestionnaire d'affichage, mais vous avez besoin d'une session X en cours d'exécution. Quelle distribution utilisez-vous? Avez-vous un serveur X installé? Pouvez-vous courir xinitou startx?
terdon

@terdon ouais, je lance actuellement lmint, mais la question est plus pour les connaissances générales (pas pour la distribution ciblée).
Ben

Réponses:


5

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:

entrez la description de l'image ici

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.


2
Il vaut peut-être la peine de mentionner que «les exécuter normalement» impliquera très probablement une mise en arrière-plan du processus, donc vous voudrez probablement utiliser xterm &pour obtenir un terminal supplémentaire, pas seulement xterm. Etc.
un CVn du

6

Voici les bases pour exécuter une application GUI sans tête, avec un moyen ( vnc) de s'y connecter. Fonctionne sur RHEL7et 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 Dockerfilepour la configuration et init/setuppour 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.


3

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:

  1. Tout d'abord, il démarre un "serveur d'affichage" X11, tel que Xorg,
  2. démarre alors les "clients" qui disent à Xorg quoi et où dessiner.

Vous pouvez utiliser des outils comme startxpour 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 ~/.xinitrcfichier.

Par exemple, le fichier .xinitrc pourrait avoir startkdeou 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 xinitet 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 xserverrcscript.)

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 westonou démarrer GNOME à l'aide de gnome-session --session=gnome-wayland.


1

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 $DISPLAYpour 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 xauthsé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.


La réponse n'est pas liée, mais utile
Ben
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.