Lancer un programme sans attendre son retour

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Lancer un programme sans attendre son retour

par sadeq » 26 sept. 2006, 12:27

Oui bien sûr tu peux :wink: c'est le serveur qui determine le chemin absolu quand un chemin relatif lui est fourni (le cas classique quoi)

par starkeus » 26 sept. 2006, 12:01

ok merci beaucoup les gars.
Par contre petite question pour la fonction exec() (L'applic est sous unix):
Je vais exécuter un SH situé dans un répertoire de mon application web (exemple: www/mon_appli/bd/script.sh)
Au niveau du chemin, est-ce que je vais devoir préciser tout le chemin?
ou pourrais-je seulement faire :
exec ("bd/script.sh &");
Merci d'avance

par sadeq » 25 sept. 2006, 13:02

Sous php aussi on peut exécuter un script silencieux (batch) par la ligne de commande système, sans passer la commande par HTTP.

Exemple:

Code : Tout sélectionner

c:/php5/php.exe c:/mes_progs/script1.php
Cette commande exécute le programme "script1.php".

Remarques qu'on peut programmer l'exécution d'un batch avec un exec() si l'on souhaite par exemple le démarrer à partir d'un click sur bouton de formulaire.

Exemple :

Code : Tout sélectionner

exec ("c:/php5/php.exe c:/mes_progs/script1.php");
si tu souhaites accèder au buffer d'exécution de la commande et ainsi lire le retour système de ta commande utilises plutôt popen()

par naholyr » 25 sept. 2006, 11:09

Sous Linux, en ajoutant " &" à la fin de la commande, tu l'exécutes sans attendre le retour.

Sous Windows il faut utiliser "start '<ma commande>'".

Lancer un programme sans attendre son retour

par starkeus » 25 sept. 2006, 10:09

Bonjour à tous,

derrière ce titre est un peu vaste se cache un problème pour moi :?

Voilà je dois lancer une procédure stockée depuis une application web (PHP / Adodb). Le problème est que je ne dois pas attendre le retour de cette procédure car elle est très longue (>4h) or le timeout apache est de 5 minutes. Je dois donc absolument la lancer en asynchrone en quelque sorte.

Auriez-vous quelques pistes?
J'ai pensé à un sh, au trigger etc...mais j'ai bien peur que je ne puisse pas exécuter cela en asynchrone. Est-ce qu'on faire ça en PHP?

Merci d'avance.
:roll: