passthru()

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • passthru()

    Hallo, ich will das Ergebnis des folgenden Linux-Befehles haben und verarbeiten:

    PHP-Code:
        passthru('/var/qmail/bin/qmail-qstat',$result);
        echo 
    $result
    Als Ergebnis bekomm ich eine Antwort die zum Teil auch richtig aussieht, bis auf die Werte -1;

    messages in queue: -1
    messages in queue but not yet preprocessed: -1
    Richtig muss es aussehen so: (wie auf der Konsole ausgeführt)

    messages in queue: 16552
    messages in queue but not yet preprocessed: 2676
    Was muss ich beachten? Danke!
    Zuletzt geändert von ; 11.09.2008, 14:41.

  • #2
    Ist das ein Shell Script? Wenn ja dann schon mal sh vorangestellt?
    Die -1 ist der Rückgabewert des Aufrufs also tippe ich mal auf Fehler. Wenn du die Rückgabe der Konsole auf eine Var gespeichert haben willst, dann ist exec() mit dem zweiten Parameter zu bevorzugen. Afaik versucht passthru() den Ausgabebuffer immer direkt auszugeben.

    Gruss

    tobi
    Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

    [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
    Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

    Kommentar


    • #3
      nein ist kein shell script!

      exec gibt auch nur -1 zurück! hat das vielleicht irgendwas mit den rechten zu tun?

      Kommentar


      • #4
        exec gibt auch nur -1 zurück! hat das vielleicht irgendwas mit den rechten zu tun?
        Unter welchem User läuft der Server und unter welchem User rufst du das Ganze manuell auf?
        Wenn das nicht die gleichen sind, dann dürfte die Rechte das Problem sein.
        Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

        [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
        Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

        Kommentar


        • #5
          naja, wie kann ich denn den user ändern. muss die php-datei auf dem server unter root laufen, oder wie meinst du das?

          Kommentar


          • #6
            mmhh, die datei auf den root-user ändern hilft auch nicht! ;O(

            Kommentar


            • #7
              Original geschrieben von frankburian
              mmhh, die datei auf den root-user ändern hilft auch nicht! ;O(
              Klingt nach grobem Unfug.

              http://de.wikipedia.org/wiki/Unix-Dateirechte

              Kommentar


              • #8
                Fakt ist, das die Ausgabe sich dadurch nicht ändert!

                Kommentar


                • #9
                  muss die php-datei auf dem server unter root laufen, oder wie meinst du das?
                  Damit meine ich, dass der User unter dem der Server läuft das Recht haben muss diese Datei auszuführen. Was ergibt denn ein
                  Code:
                  ls -all /path/to/file
                  ?
                  ggf würde es reichen die Datei für "den Rest der Welt" ausführbar zu machen.
                  Code:
                  chmod +x /path/to/file
                  Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                  [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                  Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                  Kommentar


                  • #10
                    habs so gemacht.
                    per cronjob ruf ich den befehl auf:
                    Code:
                    /var/qmail/bin/qmail-qstat > /srv/www/vhosts/domain.com/httpdocs/queue.inf
                    und hole mir den inhalt immer raus und parse ihn.

                    Kommentar

                    Lädt...
                    X