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

Web Perl Discussion :

probleme avec system et CGI


Sujet :

Web Perl

  1. #1
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Novembre 2011
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 2
    Par défaut probleme avec system et CGI
    Bonjour,

    je rencontre un problème peu banal et vous me soulageriez vraiment si vous parveniez à l'expliquer

    J'ai un petit script CGI Perl (5.8.8) qui lance la creation d'un graphe par l'intermédiaire de la fonction Perl system() et de l'outil rrdtool :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
     
    #!/usr/bin/perl
    use strict;
    use warnings;
     
    print "Content-type: text/html\n\n";
    print "<html><body>\n";
     
    my $imgfile = '/users/gss00/htdocs/brocade/rrd/images/tmp/trafic.gif';
    unlink $imgfile if ( -e $imgfile );
     
    my $status = system(
        "/usr/bin/rrdtool",
        "graph",
        "$imgfile",
        "--start", "now-24h",
        "--imginfo", "",
        "DEF:input=/tmp/trafic.rrd:input:AVERAGE",
        "DEF:output=/tmp/trafic.rrd:output:AVERAGE",    
    "AREA:input#54EC48:Input\\t",
        "LINE1:output#7648EC:Output\\t",
    );
     
    chmod 0755, $imgfile if -e $imgfile;
     
    if ($status) {
        print "Probleme lors de la generation du graph\n";
    }
    else {
        print "<img src=\"/brocade/rrd/images/tmp/trafic.gif\">\n";
    }
    print "</body></html>\n";
    Problème : la génération du graphe et l'affichage fonctionne parfaitement lors que le script est lancé en tant que CGI, ie. par l'intermédiaire de mon browser favori pointant sur l'url qui va bien (serveur apache). Par contre lors que je lance le script directement en ligne de commande sur le serveur, rrdtool ne fonctionne pas et me renvoie une erreur : ERROR: Could not make sense out of '--start'. J'ai la même erreur lorsque je lance directement rrdtool avec les mêmes options (sans passer par perl et system), je pense qu'il s'agit d'un bug de la version de rrdtool. Mais là n'est pas le problème, je n'arrive pas à expliquer pourquoi ça fonctionne lorsque le script est lancé par apache et pas quand il est lancé par root directement en ligne de commande !
    Etrange non ?

    Je soupçonne un probleme avec system qui n'aurait pas le meme comportement selon la manière dont il est lancé. Qu'en pensez-vous ?

    Merci de votre aide

    Salutations
    --
    david

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Août 2008
    Messages
    505
    Détails du profil
    Informations personnelles :
    Localisation : France, Puy de Dôme (Auvergne)

    Informations forums :
    Inscription : Août 2008
    Messages : 505
    Par défaut
    Le point qui me parait intéressant, c'est que "Probleme lors de la generation du graph" ne s'affiche pas quand tu l'executes en ligne. Mais c'est sûr que c'est un peu obscur comme souci. Dans le error.log de apache, pas le moindre message d'erreur ?

  3. #3
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Novembre 2011
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 2
    Par défaut
    Bonjour,

    pas le moindre message d'erreur dans les logs d'apache. Mais puisque tout fonctionne parfaitement lorsque le script est lancé par apache c'est assez logique.

    c'est vraiment incompréhensible. Comme si lancé via apache, l'environnement (librairies, que sais-je) faisait que system() ne fonctionne pas de la même manière que lancé directement en console. J'ai cherché de ce coté mais rien trouvé encore ... A priori un problème avec getopt.

    Merci de ton aide toute idée est bonne à creuser

    Salutations
    --
    david

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Août 2008
    Messages
    505
    Détails du profil
    Informations personnelles :
    Localisation : France, Puy de Dôme (Auvergne)

    Informations forums :
    Inscription : Août 2008
    Messages : 505
    Par défaut
    C'est quand même curieux comme endroit pour poser le rrd, /tmp ? Il ne faudrait pas qu'il y ait un chroot du cgi !

Discussions similaires

  1. probleme avec System.Data.SqlServerCe
    Par thevirgin dans le forum Accès aux données
    Réponses: 4
    Dernier message: 28/08/2009, 12h22
  2. Probleme avec System.out.println
    Par Otero dans le forum Débuter avec Java
    Réponses: 6
    Dernier message: 20/01/2009, 11h06
  3. Problème avec l'heure système
    Par Oega dans le forum Administration système
    Réponses: 1
    Dernier message: 15/05/2006, 16h03
  4. Problème avec l'utilisation de la commande system awk
    Par vbcasimir dans le forum Linux
    Réponses: 3
    Dernier message: 05/10/2004, 16h18
  5. [langage] Probleme avec commande system et code
    Par Ludo167 dans le forum Langage
    Réponses: 3
    Dernier message: 14/07/2004, 12h01

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