Page 1 sur 1

Commande d'arret du mode d'affichage x et lancement du mode

Posté : 12 mai 2009, 14:44
par popies
Bonjour tout le monde :wink:

Je suis tout nouveau dans le vaste monde du PHP (Ca fait rien de le préciser). Donc voici ma question (problème) :

Je cherche à piloter un pc distant à partir d'une machine locale, les deux tournent sous linux. Le pc distant est configuré pour ouvrir un FireFox en plein écran après chaque boot, et mes sources php sont hébergées par un serveur également sous linux. A présent tout ce que j'arrive à faire c'est de redémarrer ou arrêter le pc distant à l'aide des commandes :

Code : Tout sélectionner

//Redémarrage $command = "echo -e `echo '#!/bin/sh\\nsleep ".$timeout."; reboot'; ` > /tmp/rebootpc.sh ; nohup sh /tmp/rebootpc.sh"; //Arret $command = "echo -e `echo '#!/bin/sh\\nsleep ".$timeout."; poweroff'; ` > /tmp/arret.sh ; nohup sh /tmp/arretpc.sh";
Quand je remplace les commandes "reboot" ou "poweroff" par un "ifconfig", qui est sensé m'afficher sur un terminal les interfaces réseaux en marche avec l'adresse ip, mac... du pc distant, le mode d'affichage x persiste (c’est à dire le firefox). J’aimerais donc savoir s'il existe une commande qui permet d'arrêter ce mode d'affichage et basculer en mode console, afin que je puisse visualiser les résultats d "ifconfig" sur la sortie standard.

J'espère que j'ai pu vous faire comprendre mon problème, parce que, j'avoue, ce n’est pas évident. En tout cas merci pour votre aide.

:wink:

Posté : 13 mai 2009, 00:51
par Nagol
tu utilises une des fonctions exec de php?

Posté : 13 mai 2009, 09:49
par popies
tu utilises une des fonctions exec de php?
Tout d'abord merci pour ta réponse

Je n'utilise qu'une seule fonction utilisateur (que j'ai crée) pour avoir accès à la base de donnée mis en place sur le serveur. Cette dernière contient un ensemble d'information (adresses Ip...) des clients connectés sur le serveur, mon pc distant en fait partie.
Si j'ai bien compris, les fonctions exec de PHP sont ses fonctions natives? Sinon y a t-il quelques unes qui répondraient à mon besoin?

Posté : 13 mai 2009, 10:11
par thehawk
tu as popen() , proc_open(), exec(), shell_exec() , system()

chacune aillant des spécificités.

Consulte la doc de chacun. Bye Hawk

Posté : 14 mai 2009, 09:46
par popies
tu as popen() , proc_open(), exec(), shell_exec() , system()

chacune aillant des spécificités.

Consulte la doc de chacun. Bye Hawk
Salut!

J'ai essayé la fonction PHP exec() avec la ligne suivante :

Code : Tout sélectionner

$result1 = exec('iftop''); //iftop est un utilitaire linux pour afficher la bande passante consommée en live echo $result1;
A priori il n'y a aucune erreur, le problème c'est que le firefox lancé par défaut après chaque boot continue de tourner, à mon avis la commande est lancée en arrière plan.
Ce que j'aimerais faire c'est de faire tourner le firefox en arrière plan, et afficher le résultat de la commande sur un terminal pour voir en direct la bande passante utilisée et voir même interagir avec la commande pour choisir l'interface réseau à contrôler (eth0, eth1...).

Donc voila et merci encore une fois pour votre aide.

[Note : ce message a été posté de manière anonyme avant d'être réattribué à son auteur]

Posté : 14 mai 2009, 09:57
par Sodams
Bon ok on est sur le forum PHPFrance mais :

Es-tu sur que PHP sois vraiment une bonne solution pour répondre à ton problème?
As-tu étudier un peu les technologies existantes pour résoudre ton problème?

Il est fort probable que PHP puisse te permettre de faire ce dont tu as besoin, mais il doit surement exister une autre solution qui te posera beaucoup moins de problèmes et qui sera beaucoup plus rapide à mettre en place.

Que se passera-t'il si Firefox plante ou même que quelqu'un ferme la fenêtre?

Posté : 14 mai 2009, 10:49
par popies
Bon ok on est sur le forum PHPFrance mais :

Es-tu sur que PHP sois vraiment une bonne solution pour répondre à ton problème?
As-tu étudier un peu les technologies existantes pour résoudre ton problème?

Il est fort probable que PHP puisse te permettre de faire ce dont tu as besoin, mais il doit surement exister une autre solution qui te posera beaucoup moins de problèmes et qui sera beaucoup plus rapide à mettre en place.

Que se passera-t'il si Firefox plante ou même que quelqu'un ferme la fenêtre?
Si j'avais le choix, j'aurais choisi sans hésitation un autre langage ou j'ai plus d'expérience. En fait le début de la solution existe déjà et c'est en PHP. Ce que je veux faire c'est juste intégrer des briques PHP dans le code existant pour répondre aux petites fonctionnalités évoquées. Sinon pour répondre à ta question par rapport à Firefox, personne n'a accès à la machine sur laquelle tourne celui-ci si ce n'est moi et c'est à distance. Le fait que Firefox plante ne change rien par rapport à ce que je veux faire, ce sont deux process différents le firefox et le terminal sur lequel on visualise les résultat des commandes, ce que je veux dire c'est que si jamais ça arrive, je n'ai qu'a rebooter la machine distante.

Je reste quand même optimiste qu'à l'aide de PHP je puisse réaliser ça. :P

[Note : ce message a été posté de manière anonyme avant d'être réattribué à son auteur]

Posté : 14 mai 2009, 10:51
par Sodams
Je reste quand même optimiste qu'à l'aide de PHP je puisse réaliser ça. :P
Ca je n'en doute pas !!! :-)