web-dev-qa-db-fra.com

Lancement de programmes avec interface graphique sans affichage

J'ai entendu dire qu'il existe une façon de lancer des programmes avec une interface graphique sans gestionnaire d'affichage - directement du terminal. Est-ce pour vrai et si oui, comment puis-je faire ça?

9
Ben

Voici les bases pour la gestion d'une application d'interface graphique sans tête, d'une manière (vnc) pour vous connecter. Travaille sur RHEL7 et Centos 7, avec famille. Et déchiré de mon propre docker-image que j'utilise pour Crashplan situé à - https://github.com/xeor/dockerfiles/tree/master/crashplan/ (voir Dockerfile pour 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.

6
xeor

Vous pouvez lancer des applications X à l'aide de SSH X Transfert (SSHX; Il peut également être nécessaire d'être activé dans la configuration du serveur), à condition que vous disposiez d'une affichage local x.

L'application lancera et affichera localement tout en fonctionnant sur un système sans tête. Vous devrez avoir X installé sur le système sans tête afin de disposer des bonnes bibliothèques, ce qui peut ne pas fonctionner avec des applications de gnome plus modernes.

Vous pouvez aussi utiliser $DISPLAY Pour lancer des applications sur un affichage X ci-joint, même si votre shell est une télécommande (ssh ou console). Si vous êtes racine et que la personne connectée sur l'affichage X n'est pas, vous pouvez remplacer la sécurité xauth Security et publier une fenêtre sur leur écran. Cela fonctionne également si vous avez deux serveurs d'affichage X différents sur différents moniteurs.

Une autre affiche mentionne VNC; J'ai également utilisé NX à cet effet et je le préfère.

1
pjc50