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

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • 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.
    Last edited by Crake; 31-03-2010, 23: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,

    Originally posted by 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]

    Comment


    • #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

      Comment


      • #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]

        Comment


        • #5
          Originally posted by AmicaNoctis View Post
          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.
          Last edited by Crake; 31-03-2010, 23: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

          Comment


          • #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?

            Comment


            • #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]

              Comment


              • #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.

                Comment


                • #9
                  Originally posted by akhe View Post
                  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]

                  Comment

                  Working...
                  X