Ouvrire un terminal linux avec php

yuri648 Messages postés 785 Statut Membre -  
creadiff Messages postés 483 Statut Membre -
Bonjour,

comment ouvrir un terminal avec un script php j'ai essayé la commande
exec(`gnome-terminal') ; et sa na pas marché.
et comment lancer des commande dans ce terminal

merci d'avance

10 réponses

  1. creadiff Messages postés 483 Statut Membre 57
     
    Essaie du côté de proc_open.
    Mais... pourquoi ?
    0
  2. yuri648 Messages postés 785 Statut Membre 7
     
    le probleme que je veux executer un fichier avec la commande
    nohup ./serveur & ,quand je le lance sur la console ya pas de probleme, mais quand je veux lancer le fichier avec un script php le navigateur se bloque , alor je me suis dis j'ouvre la console avec php et je saisit la commande avec php aussi

    voici la commande qui lance le fichier avec php mais le navigateur se bloque

    system('cd /var/www/application/; sudo nohup ./serveur &');

    merci
    0
    1. mpmp93 Messages postés 2931 Date d'inscription   Statut Membre Dernière intervention   1 343
       
      Bonjour,

      la commande:
      system('cd /var/www/application/; sudo nohup ./serveur &');

      est exécutée par PHP coté serveur. Ce code tente d'ouvrir un terminal sur le serveur. mais comme le serveur (Apache) est une sorte de 'user' en "boîte noire", le terminal s'ouvre sur "rien"...

      A+
      0
  3. creadiff Messages postés 483 Statut Membre 57
     
    sudo demande un mot de passe. Du coup, quand le navigateur effectue la requête, PHP effectue la ligne de commande, qui demande un mot de passe.

    Que fait PHP pendant ce temps ? Rien, l'exécution des lignes de commandes avec exec() ou system() se fait de façon synchrone, ce qui signifie que le script attend la fin de l'exécution pour reprendre.

    Essaie proc_open, qui permet l'asynchrone.
    0
  4. yuri648 Messages postés 785 Statut Membre 7
     
    ok merci je vais l'essayer
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. yuri648 Messages postés 785 Statut Membre 7
     
    sa na pas marché voici le code

    <?php
    $descriptorspec = array(
    0 => array("pipe","r"),
    1 => array("pipe","w"),
    2 => array("file","./error.log","a")
    ) ;

    // define current working directory where files would be stored
    $cwd = './' ;
    // open process /bin/sh
    $process = proc_open('/bin/sh', $descriptorspec, $pipes, $cwd) ;

    if (is_resource($process)) {

    // anatomy of $pipes: 0 => stdin, 1 => stdout, 2 => error log
    fwrite($pipes[0], 'cd /var/www/application;sudo nohub ./serveur& ') ;
    fclose($pipes[0]) ;

    // print pipe output
    echo stream_get_contents($pipes[1]) ;

    // close pipe
    fclose($pipes[1]) ;

    // all pipes must be closed before calling proc_close.
    // proc_close() to avoid deadlock
    proc_close($process) ;
    }

    /*

    $t=shell_exec('cd /usr/lib/pvm3/lib; sudo ./ad.sh ');
    echo "*".$t;*/

    ?>

    merci
    0
  7. creadiff Messages postés 483 Statut Membre 57
     
    Qu'y a-t-il dans error.log ?
    0
  8. yuri648 Messages postés 785 Statut Membre 7
     
    elle saubgarde les resultat de la commande
    fwrite($pipes[0], 'cd /var/www/application;sudo nohub ./serveur& ') ;
    voici un exemple du fichier error.log

    Socket connection successful 3
    Socket connection successful 3
    Socket connection successful 3
    Thread * accepts socket 4 connection from IP 192.168.1.1
    Socket connection successful 3
    Thread * accepts socket 4 connection from IP 192.168.1.1
    Thread * accepts socket 4 connection from IP 192.168.1.1
    Socket connection successful 3
    Thread * accepts socket 4 connection from IP 192.168.1.1
    Thread * accepts socket 4 connection from IP 192.168.1.1

    si jexecute sudo nohub ./serveur& dans la console j'aurai le meme resultat
    0
  9. creadiff Messages postés 483 Statut Membre 57
     
    Donc... l'exécution a fonctionné en fait !
    0
    1. yuri648 Messages postés 785 Statut Membre 7
       
      le probleme c'est que defois il fonctione defois il fonctionne pas
      et s'il fonctionne le navigateur se bloque

      merci
      0
    2. yuri648 Messages postés 785 Statut Membre 7
       
      je ne comprend pas pour quoi le navigateur se bloque quand il marche
      0
  10. yuri648 Messages postés 785 Statut Membre 7
     
    je suis encore coincé aidez moi svp
    0
  11. creadiff Messages postés 483 Statut Membre 57
     
    Essaie d'exécuter le script via une requête AJAX. Le serveur ne répondra pas non plus (temps d'exécution trop long), mais au moins la page ne ralentira pas le navigateur.
    0