IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[Système] terminer script php sans attendre la fin d'un exec


Sujet :

Langage PHP

  1. #1
    Membre averti Avatar de sohnic
    Femme Profil pro
    bioinfo
    Inscrit en
    Mai 2003
    Messages
    426
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : bioinfo

    Informations forums :
    Inscription : Mai 2003
    Messages : 426
    Points : 434
    Points
    434
    Par défaut [Système] terminer script php sans attendre la fin d'un exec
    Bonjour,
    Imaginons un script php qui contiendrait simplement :
    exec(script qui va prendre plusieurs jours);

    Jusque la, je ne me cassais la tete, les utilisateurs avait impossible d'afficher la page, au bout du temps reglementaire, ce qui n'empechait pas le script de faire son oeuvre.

    Maintenant, je voudrais quelque chose d'un peu plus soigné :
    1- Lancement de l'execution du script
    2- echo "c'est parti. Vous pouvez rentrer chez vous !"

    Avec flush, je n'obtiens pas l'effet desiré et j'aimerais que le traitement html s'arrete la. Meme en faisant une redirestion vers mon script, je ne vois pas comment obtenir ce dernier effet.

    Si quelqu'un a une idee...

    Merci pour votre aide,
    Sohnic
    http://www.noctinfo.fr/

    (\ _ /)
    (='.'=) Voici Lapinou. Aidez-le à conquérir le monde en le reproduisant.
    (")-(")

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    774
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2005
    Messages : 774
    Points : 936
    Points
    936
    Par défaut
    et si tu utilisait l'instruction
    Les hommes naissent et demeurent libres et egaux en dignité et en droit. Les distinctions sociales ne peuvent etre fondées que sur l'utilité commune. Article 1 droits et de l'homme et du citoyen. 1789

  3. #3
    Membre averti Avatar de sohnic
    Femme Profil pro
    bioinfo
    Inscrit en
    Mai 2003
    Messages
    426
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : bioinfo

    Informations forums :
    Inscription : Mai 2003
    Messages : 426
    Points : 434
    Points
    434
    Par défaut
    Et non, ca ne peut pas marcher, car je serais obligée de le placer apres le exec. Le die sera donc interpreté apres la fin de l'instruction exec.
    Merci,
    S.
    http://www.noctinfo.fr/

    (\ _ /)
    (='.'=) Voici Lapinou. Aidez-le à conquérir le monde en le reproduisant.
    (")-(")

  4. #4
    Membre averti Avatar de sohnic
    Femme Profil pro
    bioinfo
    Inscrit en
    Mai 2003
    Messages
    426
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : bioinfo

    Informations forums :
    Inscription : Mai 2003
    Messages : 426
    Points : 434
    Points
    434
    Par défaut
    Je m'auto-reponds, au cas ou quelqu'un en auarait l'utilité.

    Pour le test, le but est de lancer un script long (en l'occurence, une boucle infinie) via un script php, tout en recupérant la main immediatement.

    1- la boucle : test.pl
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $i=0;
    while($i==0)
    {
    }
    Le script php (lancé à partir d'un lien, par exemple)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <?php
    //system('perl test.pl &');
    pclose(popen('perl test.pl &', 'r')); 
    echo 'titi';
    ?>
    Avec la ligne commentée, ca ne marche pas (testé aussi avec exec, shell_exec, passthru).

    J'ai vérifié que le script était bien lancé et continuait bien après l'affichage de titi avec la commande ps.

    Voila, c'est bizarre mais fonctionnel...

    Sohnic
    http://www.noctinfo.fr/

    (\ _ /)
    (='.'=) Voici Lapinou. Aidez-le à conquérir le monde en le reproduisant.
    (")-(")

  5. #5
    FFF
    FFF est déconnecté
    Membre actif Avatar de FFF
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    342
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 342
    Points : 282
    Points
    282
    Par défaut
    tu es sous linux unix ? non ?

  6. #6
    Membre averti Avatar de sohnic
    Femme Profil pro
    bioinfo
    Inscrit en
    Mai 2003
    Messages
    426
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : bioinfo

    Informations forums :
    Inscription : Mai 2003
    Messages : 426
    Points : 434
    Points
    434
    Par défaut
    Oui (Linux, fedora core4 exactement), mais j'ai trouvé la combine dans un post de php.net. L'exemple donné était sous Windows...
    S.
    http://www.noctinfo.fr/

    (\ _ /)
    (='.'=) Voici Lapinou. Aidez-le à conquérir le monde en le reproduisant.
    (")-(")

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 8
    Dernier message: 15/05/2008, 17h41
  2. [Système] Lancer un script sans attendre sa fin ?
    Par parisien dans le forum Langage
    Réponses: 9
    Dernier message: 03/11/2005, 22h09
  3. [Système] Lancer un executable sans attendre la fin
    Par raptor70 dans le forum Langage
    Réponses: 1
    Dernier message: 27/10/2005, 14h25
  4. Réponses: 7
    Dernier message: 20/10/2005, 20h51
  5. [Dos] Lancer une commande dos sans attendre la fin
    Par MrEddy dans le forum Windows
    Réponses: 4
    Dernier message: 09/06/2005, 17h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo