Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1616 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  proc_open : arreter le processus avant la fin du script php

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

proc_open : arreter le processus avant la fin du script php

n°1530758
azubal
Posté le 19-03-2007 à 20:06:24  profilanswer
 

Bonjour,
 
j'execute via la fonction proc_open des processus qui durent, qui durent...
seulement voila, a la fin du script php (ou si le client coupe la connexion avant), le processus continue a tourner... et ca c'est pas glop :/
 
Bref, existe il un moyen de dire au script php d'arreter le processus a la fin de celui ci ou si le client web se deconnecte ?

mood
Publicité
Posté le 19-03-2007 à 20:06:24  profilanswer
 

n°1530839
azubal
Posté le 19-03-2007 à 23:17:54  profilanswer
 

j'ai essayé de faire ceci, mais sans resultat :(
 

Code :
  1. ignore_user_abort(true);
  2. $cmd = 'ping -t google.fr';
  3. $descriptorspec = array(
  4.         0 => array("pipe", "r" ),  // stdin
  5.         1 => array("pipe", "w" ),  // stdout
  6.         2 => array("file", "error-output.txt", "a" ) // stderr
  7. );
  8. $process = proc_open($cmd, $descriptorspec, $pipes, getcwd());
  9. if (!is_resource($process))
  10. {
  11.         return;
  12. }
  13. fclose($pipes[0]);
  14. while (!feof($pipes[1]))
  15. {
  16.         $buff = fread($pipes[1], 16384);
  17.         echo $buff;
  18.         flush();
  19.         if (connection_status() != 0)
  20.         {
  21.                 do
  22.                 {
  23.                         $state = proc_get_status($process);
  24.                         proc_terminate($process);
  25.                 }
  26.                 while($state['running']);
  27.                 break;
  28.         }
  29.        
  30. }
  31. fclose($pipes[1]);
  32. $return_value = proc_close($process);

n°1530935
azubal
Posté le 20-03-2007 à 10:50:23  profilanswer
 

Bon, j'ai trouve alors je post la reponse, ca peut servir a d'autres.
Avant tout, ca ne fonctionne que sur PHP 5.2.1 et superieur.
 

Code :
  1. <?php
  2. ignore_user_abort(true);
  3. $cmd = 'ping -t google.fr';
  4. $descriptorspec = array(
  5.  0 => array("pipe", "r" ),  // stdin
  6.  1 => array("pipe", "w" ),  // stdout
  7.  2 => array("file", "error-output.txt", "a" ) // stderr
  8. );
  9. $process = proc_open($cmd, $descriptorspec, $pipes, getcwd(), null, array('bypass_shell' => true));
  10. if (!is_resource($process))
  11. {
  12.  return;
  13. }
  14. fclose($pipes[0]);
  15. while (!feof($pipes[1]))
  16. {
  17.  $buff = fread($pipes[1], 16384);
  18.  echo $buff;
  19.  flush();
  20.  if (Connection_Aborted())
  21.  {
  22.    do
  23.    {
  24.      $state = proc_get_status($process);
  25.      proc_terminate($process);
  26.      fclose($pipes[1]);
  27.      $return_value = proc_close($process);
  28.    }
  29.    while($state['running']);
  30.    exit (0);
  31.  }
  32. }
  33. ?>


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  proc_open : arreter le processus avant la fin du script php

 

Sujets relatifs
script csh besoin d'aide pour lire x lignesPeut-on intégrer un script php dans un PDA?
Script permettant de transformer un .xls en .sqlBatch pour arrêter vista
Shell aide sur mon scriptforcer l'execution d'un script js
Comment générer une page PDF à partir d'un script Perl?Aide script perl
fatal error RC1015: cannot open include file 'afxres.h' 
Plus de sujets relatifs à : proc_open : arreter le processus avant la fin du script php


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR