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] Commande système et timeout


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    LLB
    LLB est déconnecté
    Membre émérite
    Inscrit en
    Mars 2002
    Messages
    968
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 968
    Par défaut [Système] Commande système et timeout
    Bonjour,

    J'exécute sur le serveur web un script qui est potentiellement infini. Je voudrais l'exécuter et afficher sa sortie, en définissant un timeout (et afficher un message d'erreur au bout de 2 secondes). Pour le moment, j'ai juste cette ligne (il manque donc la gestion du timeout) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    system("echo '$msg' | ./sed -r -f cmd.sed 2>&1");
    J'ai regardé du côté de set_time_limit(), mais ça ne fonctionne pas sur les appels systèmes.

    J'ai voulu utiliser fork et kill dans un script php, mais la fonction pcntl_fork n'est pas définie quand j'exécute dans apache.

    J'ai écrit un script shell pour faire la même chose (à base de sleep et de kill). Le script marche bien en mode console, mais j'ai l'impression que le kill échoue lorsque le script est appelé par le web. Le processus continue à tourner sur le serveur (même quand l'utilisateur appuie sur échape, de son côté).

    Quelqu'un a une solution ? (sachant que je n'ai pas de droits root sur le serveur)

    Merci d'avance.


    [Edit] je voulais poster juste dans "Langage", et non dans syntaxe. Désolé.

  2. #2
    Membre très actif Avatar de zulad
    Homme Profil pro
    creatif
    Inscrit en
    Juin 2007
    Messages
    714
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : creatif

    Informations forums :
    Inscription : Juin 2007
    Messages : 714
    Par défaut
    post le début du script ...

    d'ou vient le msg ?

  3. #3
    LLB
    LLB est déconnecté
    Membre émérite
    Inscrit en
    Mars 2002
    Messages
    968
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 968
    Par défaut
    Euh... ça change quoi ?
    Si ça peut t'aider, considère que $msg = "foo";

    Ce qu'il faut savoir, c'est que le script sed (contenu dans le fichier "cmd.sed") est quelconque et variable. Il est potentiellement long à exécuter et peut même contenir une boucle infinie (c'est pour cela qu'il faut absolument le killer au bout de quelques secondes).

Discussions similaires

  1. [Système]commandes linux / unix depuis java
    Par msiramy dans le forum API standards et tierces
    Réponses: 12
    Dernier message: 20/03/2007, 11h29
  2. Commandes systèmes avec pl/pgsql
    Par Takayanagi dans le forum PostgreSQL
    Réponses: 4
    Dernier message: 11/08/2006, 12h36
  3. exécuter une commande système à partir de sqlplus?
    Par c_moi_c_moi dans le forum Oracle
    Réponses: 24
    Dernier message: 08/11/2005, 15h11
  4. [Process] éxecution d'une commande système
    Par alex'l dans le forum API standards et tierces
    Réponses: 12
    Dernier message: 13/09/2005, 17h29
  5. Commande Système
    Par siaoly dans le forum Langage
    Réponses: 5
    Dernier message: 14/07/2005, 00h25

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