J'essaie d'exécuter le navigateur Firefox GUI sur le serveur CentOS sans tête afin d'effectuer des tests Web.
Je n'ai pas besoin de voir la sortie graphique, car j'utilise l' API serveur Selenium pour contrôler l'entrée du navigateur et inspecter la sortie.
La configuration a été testée avec succès sur un ordinateur Mac de bureau. Cependant, il ne parvient pas à s'exécuter sur mon serveur VPS CentOS sans tête avec le message suivant "Erreur: aucun affichage spécifié." (Ce qui est logique, car ce n'est qu'un serveur assis sur un rack quelque part.)
Comment faire fonctionner Firefox sans écran, afin que Selenium puisse interagir avec lui? Ou - plus largement - comment les gens exécutent-ils des applications GUI uniquement sur un serveur Linux lorsqu'il n'y a pas d'affichage?
J'ai remarqué que Firefox a cette option de ligne de commande:
X11 options
--display=DISPLAY X display to use
Malheureusement, je ne sais rien de X11 ou d'affichages sous CentOS, donc je ne sais pas quoi spécifier sur la ligne de commande, ou si cela pourrait aider.
Réponses:
Utilisez Xvfb. Il vous donne un serveur X qui ne nécessite pas de connexion à un écran physique.
(Donc, sur CentOS, vous feriez quelque chose comme "yum install xorg-x11-server-Xvfb".)
Vous pouvez ensuite le démarrer sur l'affichage ": 1" avec la commande "/ path / on / which / installed / Xvfb: 1 -screen 0 1024x768x24 &". Cela créera un écran avec une résolution de 1027x768 et une profondeur de 24. L'utilisation de "&" fera exécuter la commande en arrière-plan.
Avant de lancer Firefox, vous devez rendre l'affichage accessible, ce qui se fait à l'aide de la commande Exporter, c'est-à-dire. "export DISPLAY =: 1", pointant vers l'hôte approprié.
la source
export
commande DOIT être définie sur la même session de terminal que le terminal sur