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

  FORUM HardWare.fr
  Programmation
  PHP

  Appel d'une commande bloquante via system()

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Appel d'une commande bloquante via system()

n°1377612
palnap
Posté le 30-05-2006 à 15:12:13  profilanswer
 

Un truc tout con : j'appelle dans ma page PHP une commande Unix via la fonction system().

 

Le problème c'est que tant que cette commande ne va pas rendre la main à l'interpréteur PHP (que le programme n'a pas terminé son execution), celui-ci ne termine pas la "construction" de la page, faisant patienter l'utilisateur jusqu'à ce que le programme ait terminé son execution.

 

J'aimerais savoir comment pallier à cet inconvénient...

 

J'ai essayé un truc du style system("macommande &" ); mais l'interpréteur php attends quand même la fin du programme pour continuer son execution...

 

Je tiens à préciser que j'utilise l'interpréteur PHP en tant que module pour apache (donc pas possible de "forker" ).

 

Merci pour vos réponses
++
Loudi

mood
Publicité
Posté le 30-05-2006 à 15:12:13  profilanswer
 

n°1377653
Ricco
Retour au pays
Posté le 30-05-2006 à 16:15:26  profilanswer
 

Faut peut-être faire cet appel dans un script à part lancé via un web bug ou par javascript.


---------------
"L'informatique n'est pas plus la science des ordinateurs que l'astronomie n'est celle des télescopes." Michael R. Fellows & Ian Parberry
n°1377659
jfbus
Posté le 30-05-2006 à 16:19:05  profilanswer
 

palnap a écrit :

Un truc tout con : j'appelle dans ma page PHP une commande Unix via la fonction system().
 
Le problème c'est que tant que cette commande ne va pas rendre la main à l'interpréteur PHP (que le programme n'a pas terminé son execution), celui-ci ne termine pas la "construction" de la page, faisant patienter l'utilisateur jusqu'à ce que le programme ait terminé son execution.
 
J'aimerais savoir comment pallier à cet inconvénient...
 
J'ai essayé un truc du style system("macommande &" ); mais l'interpréteur php attends quand même la fin du programme pour continuer son execution...
 
Je tiens à préciser que j'utilise l'interpréteur PHP en tant que module pour apache (donc pas possible de "forker" ).
 
Merci pour vos réponses
++
Loudi


En ce qui me concerne, j'évite absolument :

  • d'appeler des fonctions système depuis PHP (je désactive les fonctions au niveau php.ini pour bloquer certaines failles de sécurité)
  • j'évite de faire des appels trop longs depuis apache (car ça peut entraîner des dénis de services, volontaires ou non, en occupant tous les process apache)

Tu peux envisager de séparer ton code en deux : ta page web alimente une file d'attente en base de données, et un script (appelé en cron) lance tes commandes en fonction de la file d'attente. Enfin, c'est comme ça que je ferais...


---------------
ipersec - Optimisation et sécurisation de sites internet

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

  Appel d'une commande bloquante via system()

 

Sujets relatifs
Pb avec la commande execLa commande grep..
Commande find sous linux [RESOLU][Résolu] Appel de destructeur après avoir utilisé une dll
Chargement du navigateur depuis la fonction system ( )nouvelle fenetre de commande à partir d'une fenetre de commande
Appel d'une ligne de commande[RESOLU] [VB] Appel d'une fonction sur sélection d'une case
[.NET] System.Drawing > Comment remplir une zone avec une image ? 
Plus de sujets relatifs à : Appel d'une commande bloquante via system()


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