Lancer un programme graphique en .sh

Fermé
index Messages postés 1861 Date d'inscription jeudi 14 août 2008 Statut Membre Dernière intervention 2 avril 2017 - Modifié par index le 26/01/2016 à 23:00
ryko1820 Messages postés 1645 Date d'inscription dimanche 28 avril 2013 Statut Membre Dernière intervention 15 août 2021 - 29 janv. 2016 à 16:43
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.
A voir également:

3 réponses

jisisv Messages postés 3645 Date d'inscription dimanche 18 mars 2001 Statut Modérateur Dernière intervention 15 janvier 2017 934
Modifié par jisisv le 27/01/2016 à 03:50
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 jeudi 14 août 2008 Statut Membre Dernière intervention 2 avril 2017 231
27 janv. 2016 à 14:11
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 2103 Date d'inscription jeudi 16 septembre 2004 Statut Membre Dernière intervention 21 novembre 2023 259
27 janv. 2016 à 19:29
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 dimanche 18 mars 2001 Statut Modérateur Dernière intervention 15 janvier 2017 934
Modifié par jisisv le 27/01/2016 à 21:34
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 2103 Date d'inscription jeudi 16 septembre 2004 Statut Membre Dernière intervention 21 novembre 2023 259
27 janv. 2016 à 21:55
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 jeudi 14 août 2008 Statut Membre Dernière intervention 2 avril 2017 231 > Flachy Joe Messages postés 2103 Date d'inscription jeudi 16 septembre 2004 Statut Membre Dernière intervention 21 novembre 2023
Modifié par index le 27/01/2016 à 22:46
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 dimanche 18 mars 2001 Statut Modérateur Dernière intervention 15 janvier 2017 934
28 janv. 2016 à 02:32
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 jeudi 14 août 2008 Statut Membre Dernière intervention 2 avril 2017 231
29 janv. 2016 à 15:44
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 1645 Date d'inscription dimanche 28 avril 2013 Statut Membre Dernière intervention 15 août 2021 276
Modifié par ryko1820 le 29/01/2016 à 16:49
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