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

EDI, CMS, Outils, Scripts et API PHP Discussion :

lancer un script bash sans attendre le retour


Sujet :

EDI, CMS, Outils, Scripts et API PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2012
    Messages : 51
    Par défaut lancer un script bash sans attendre le retour
    Bonjours,

    J'ai un petit problème. J'ai une page internet toute simple qui lance un script bash pour dédoublonner une base de donnée. Or le dédoublonnage prend 2 à 3 jours (il y a 26 millions d'enregistrement). Le soucis et que je ne veut pas attendre la fin de mon script pour que ma page s'affiche.
    J'ai essaye en avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    exec('dedouble.sh &') or die('erreur lors du lancement du script');
    Mais cela ne marche pas. J'ai également essaye de passe par un fichier temporaire qui comprenais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    #!/bin/bash
    #appelle mon script
    ./dedouble.sh &
    Or cela ne marche pas non plus. Si jamais vous voyez des erreurs ou encore une autre façon de procéder.

    Merci d'avance.
    Cordialement.

  2. #2
    Expert confirmé
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Par défaut
    Utilise popen.

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2012
    Messages : 51
    Par défaut
    Bonjours,

    J'ai peur de pas avoir compris comment s'en servir.
    J'ai fait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if( pclose(popen('dedouble.sh', 'r')) ) {
         echo 'lancement du script';
    }
    else{
         echo 'erreur lors du lancement du script';
    }
    Mais la page web ne se charge pas tant que le script n'est pas fini.
    En revanche tout marche bien c'est juste que le script n'est pas encore independant de la page web.

    Cordialement.

  4. #4
    Expert confirmé
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Par défaut
    Ne fait pas de pclose et ça devrait rouler

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2012
    Messages : 51
    Par défaut
    Bonjours,

    Malheureusement sa ne marche pas même avec le pclose.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if( popen('dedouble.sh', 'r') ) {
         echo 'lancement du script';
    }
    else{
         echo 'erreur lors du lancement du script';
    }
    Cordialement.

  6. #6
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2012
    Messages : 51
    Par défaut
    Bonjours,

    Je te remercie j'ai fini par trouvé la solution. En effet comme tu l'as dit j'ai utilisé popen.
    Or je ne fait pas le popen directement sur mon script mais sur un autre script qui lance celui que je veux en silencieux via le '&'.
    Et tout fonctionne correctement.
    Un grand merci de m'avoir aidé et bonne journée.

    Cordialement.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 28/07/2010, 10h05
  2. [Système] lancer un script bash à partir de php
    Par ayago dans le forum Langage
    Réponses: 1
    Dernier message: 27/05/2008, 08h15
  3. Peut-on lancer un script bash à partir de la plateforme ?
    Par jcodeunpeu dans le forum Eclipse Java
    Réponses: 5
    Dernier message: 21/08/2006, 18h48
  4. Réponses: 5
    Dernier message: 13/02/2006, 14h45
  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