exec() ohne Reaktion und Rückmeldung...

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

  • exec() ohne Reaktion und Rückmeldung...

    Das Problem: Ich versuche mittels eines PHP-Scriptes eine Anwendung zu starten, allerdings gibt mir exec() keinerlei Meldung zurück.

    PHP-Code:
    <?php
    if($_REQUEST["send"] == 1)
    {
      
    exec("sudo /home/gameserver/relay/relay 
    /dedicated_cfg=dedicated_cfg.txt /join=" 
    $_REQUEST["login"] . " /joinpassword=" $_REQUEST["specpw"], $results);

      
    print_r($results);
    }
    ?>
    Ausgeführt werden soll defakto folgender Befehl im entsprechenden Verzeichnis: relay /dedicated_cfg=dedicated_cfg.txt /join=the_login_of_the_game_server /joinpassword=spectator_password_of_the_game_server_if_needed

    Stutzig macht mich, dass ich keinerlei Meldung erhalte. Der Part innerhalb des IF-Zweiges wird definitiv ausgeführt, was ich mit einer Testvariablen bereits überprüft habe.

    In "etc/sudoers" habe ich testweise mal eine Erlaubnis für das gesamte Webverzeichnis eingefügt.
    Zuletzt geändert von Crake; 01.04.2010, 00:12.
    [COLOR=red]Gesellschaftsforum.net[/COLOR] - Projekt zur Wiederbelebung der Diskussionskultur im Internet
    [COLOR=orange]1st News[/COLOR] - Das Newsletterscript für den professionellen Einsatz

  • #2
    Hallo,

    Zitat von http://de3.php.net/manual/de/function.exec.php
    exec() führt ein gegebenen Befehl aus, ohne eine Ausgabe zu erzeugen.
    Insofern verstehe ich dein Problem nicht.

    Gruß,

    Amica
    [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
    Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
    Super, danke!
    [/COLOR]

    Kommentar


    • #3
      Ja, aber Fehlermeldungen bzw. die Ausgabe über das 2. Argument ($results) erhalte ich ebenfalls nicht. Weshalb ich keinerlei Anhaltspunkt habe, weshalb der Aufruf nicht den gewünschten Erfolg beschert.
      [COLOR=red]Gesellschaftsforum.net[/COLOR] - Projekt zur Wiederbelebung der Diskussionskultur im Internet
      [COLOR=orange]1st News[/COLOR] - Das Newsletterscript für den professionellen Einsatz

      Kommentar


      • #4
        Dann ist vermutlich dein Error-Reporting zu niedrig eingestellt und exec per php.ini verboten. In den Forenregeln steht, wie du das Error-Reporting für das aktuelle Script aufdrehst, um meine Vermutung zu prüfen.
        [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
        Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
        Super, danke!
        [/COLOR]

        Kommentar


        • #5
          Zitat von AmicaNoctis Beitrag anzeigen
          Dann ist vermutlich dein Error-Reporting zu niedrig eingestellt und exec per php.ini verboten. In den Forenregeln steht, wie du das Error-Reporting für das aktuelle Script aufdrehst, um meine Vermutung zu prüfen.
          exec() selbst ist aktiviert.

          Was das Error-Reporting anbelangt: Nicht dran gedacht, werde es mal versuchen.
          Edit: Kein PHP-Error. Weiterhin anhnungslos.
          Zuletzt geändert von Crake; 01.04.2010, 00:27.
          [COLOR=red]Gesellschaftsforum.net[/COLOR] - Projekt zur Wiederbelebung der Diskussionskultur im Internet
          [COLOR=orange]1st News[/COLOR] - Das Newsletterscript für den professionellen Einsatz

          Kommentar


          • #6
            Dann schau doch mal in die System-Logs, evtl. wird dir das Aufschluss darüber geben was schief läuft. Alternative dazu ist die Ausgabe des Systembefehls in eine Datei umzulenken und dir diese im Anschluss auszugeben. Nicht besonders elegant, sollte es aber auch tun:
            Code:
            exec('befehl > /serverpfad/datei.txt');
            echo file_get_contents('/serverpfad/datei.txt');
            PS: lt. Doku von PHP erwartet exec ein Array, hast du result vorher als Array definiert?

            Kommentar


            • #7
              Dann liegt es wahrscheinlich daran, dass sudo ein Passwort erwartet, aber auf diesem Wege nicht bekommt. Im Handbuch steht ein vielleicht hilfreicher User-Kommentar. Hier ist noch ein älterer Thread mit einem ähnlichen Problem.

              Wenn das auch nicht hilft: "php exec sudo" googlen.

              @akhe: Der zweite und der dritte Parameter werden per Referenz übergeben, müssen also vorher noch nicht definiert sein.

              Gruß,

              Amica
              [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
              Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
              Super, danke!
              [/COLOR]

              Kommentar


              • #8
                @AmicaNoctis, die Theorie interessiert mich dann doch, wie kann ich was referenzieren was noch nicht vorhanden ist? Man kann das ganze in PHP bei der Übergabe deklarieren, aber komplett ohne funktioniert nicht wenn ein Array erwartet wird.

                Kommentar


                • #9
                  Zitat von akhe Beitrag anzeigen
                  Man kann das ganze in PHP bei der Übergabe deklarieren, aber komplett ohne funktioniert nicht wenn ein Array erwartet wird.
                  Unsinn. Lies das Handbuch.
                  [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                  Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                  Super, danke!
                  [/COLOR]

                  Kommentar

                  Lädt...
                  X