Lancer un programme graphique en .sh

index Messages postés 1861 Date d'inscription   Statut Membre Dernière intervention   -  
ryko1820 Messages postés 1677 Date d'inscription   Statut Membre Dernière intervention   -
Bonsoir.

Je souhaite lancer un script .sh depuis un fichier .php sur ma machine.
Dans ce .sh il y'a un programme, appelons le ... "firefox".

Je souhaite lancer firefox via un ce script, mais ce dernier ne peut pas s'ouvrir car il n'y a pas d'interface graphique (logique) alors comment faire en sorte d'ouvrir firefox qui demande une interface graphique à partir de mon script shell ?

Comprenez-vous ?

Quelqu'un aurait une idée ?
Je vous remercie.

3 réponses

jisisv Messages postés 3645 Date d'inscription   Statut Modérateur Dernière intervention   934
 
Sans être indiscret, quel est le but de ta manip ?
Ton fichier PHP est-il lancé en dehors d'un serveur HTTP ?

Je suppute que tu es sur un OS Unix-like.

Si tu dois chercher des informations sur une page web, utilise plutôt l'interface PHP à la bibliothèque cURL.
La doc PHP: Client URL Library
Des exemples: PHP/CURL -- using libcurl with PHP Il vaut mieux éviter les nullissimes exemples de la documentation PHP officielle!!!

Utilise ensuite les fonctions/bibliothèques nécessaires: XML Parse, outils fichiers, chaînes etc.

Gates gave ^W  sold  you the windows.
GNU gave us the whole house.(Alexandrin)
0
index Messages postés 1861 Date d'inscription   Statut Membre Dernière intervention   231
 
Pour tout dire, je souhaite lancer un fichier .sh (à savoir que c'est le logiciel Teamspeak client), hors ce dernier à besoin d'un affichage graphique quand il s'ouvre, hors, lorsque je donne l'ordre d'ouverture sur le serveur, il me dit qu'il n'y a pas d'affichage ... Du coup j'aurais aimé savoir s'il y'avait un moyen de pouvoir ouvrir mon programme en "émulant" un affichage sur la machine.

Le programme que je veux lancer se trouve sur le serveur.
0
Flachy Joe Messages postés 2102 Date d'inscription   Statut Membre Dernière intervention   261
 
Salut,
en gros :
si tu autorises les connections entrante de ton afficheur X sur le client
xhost +ip_du_serveur

alors tu peux utiliser
DISPLAY=ip_du_client:0.0 Teamspeak.sh
sur le serveur.

Pour sécuriser ça il faut utiliser la redirection de port à travers ssh, à démêler...
0
jisisv Messages postés 3645 Date d'inscription   Statut Modérateur Dernière intervention   934
 
Dans ce cas je ne vois pas le rapport avec PHP. ! Lance plutôt un serveur vnc et lance y le client graphique.ou je ne sais quoi.
Connecte-toi au serveur vnc selon les besoins.depuis le/les clients autorisés. (configure iptables sous Linux par exemple)
Cette méthode sera bien plus robuste que de lancer le client graphique par Xforwarding ou l'antédiluvien xhost.
0
Flachy Joe Messages postés 2102 Date d'inscription   Statut Membre Dernière intervention   261
 
jisisv : Le souci dans son cas c'est que l'interface graphique est lancée par le serveur, pas par le client...

Mais, index, as-tu besoin de l'affichage ou tu as juste besoin que le prog se lance ?
Si tu as juste besoin du prog mais pas de l'affichage, tu peux utiliser xvfb.
0
index Messages postés 1861 Date d'inscription   Statut Membre Dernière intervention   231 > Flachy Joe Messages postés 2102 Date d'inscription   Statut Membre Dernière intervention  
 
J'ai un petit soucis lors de l'exécution de la commande: xhost +ip_du_serveur

xhost: unable to open display ""
0
jisisv Messages postés 3645 Date d'inscription   Statut Modérateur Dernière intervention   934
 
Que fait vnc , si ce n'est de fournir un serveur X ...heuh... comment dirais-je virtuel ? Avec l'avantage de pouvoir s'y connecter depuis une machine distante.
0
index Messages postés 1861 Date d'inscription   Statut Membre Dernière intervention   231
 
En fait je m'exprime mal.

- J'ai un .php qui exécute un fichier .sh dans le .php il y'a simplement une fonction qui exécute le script.
- Le .sh ouvre un logiciel nommé "ts3 CLIENT" => sur le serveur même.

HORS

ts3client a besoin d'une interface graphique pour s'ouvrir ... Et je ne sais pas comment on peut autoriser l'ouverture de l’exécutable vu qu'il devra être autorisé à utiliser un serveur X (d'affichage)

C'est plus clair ? :s
0
ryko1820 Messages postés 1677 Date d'inscription   Statut Membre Dernière intervention   276
 
Si un exécutable n'a pas d'option pour fonctionner sans X il lui faut X !
Après X peut être sur le client (même si l'exécutable est sur le serveur) en faisant du X forwarding et en utilisant par exemple "ssh -X" (ou du xdmcp mais il faut X d'installé et de configuré pour l'autoriser) pour se connecter sur le serveur.
Cela implique toutefois que le client qui lance l’exécutable sur le serveur ait un serveur X et que la configuration du démon sshd du serveur l'autorise.
Sur Windows je connais Cygwin qui propose un serveur X gratuit, sur Linux la question ne se pose généralement pas car la plupart utilisent déjà un environnement X qui lance alors l'application distante forwardée comme une application locale ... Normalement on se retrouve avec un $DISPLAY différent de null et pointant vers le client (si tout est bien configuré).
0