Linux Prozess via PHP Starten / Beenden

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

  • Linux Prozess via PHP Starten / Beenden

    Hallo,

    ich habe hier einen Linuxserver, wo unsere Gameserver und der Webserver drauf läuft.

    Nun möchte ich gerne, dass ich via PHP die Gameserver starten und beenden kann, also via Shell halt.

    Habe auch mal die Suche betätigt und folgende Dinge gefunden.

    1.
    PHP-Code:
    $startscript"cd /home/games/cod/;
    ./cod_lnxded
    +set net_ip X.X.X.X
    +set net_port 28960
    +set dedicated 1
    +set sv_punkbuster 1
    +map mp_carentan
    +gametyp sd
    +exec ./configs/config.cfg &"
    ;

    echo 
    exec($startscript)."<br>"
    2.
    PHP-Code:
    $output shell_exec("/home/games/cod/start.sh"); 
    3.
    PHP-Code:
    $output system("/home/games/cod/start.sh"); 
    4.
    PHP-Code:
    $output exec("/home/games/cod/start.sh"); 
    Habe meinen Pfad angepasst und versucht das mit dem Browser zu starten. Ergebnis war irgendwie nichts. Auch keine Ausgabe via Browser.


    Ist meine Eingabe jetzt total falsch, die ich gemacht habe, oder woran könnte es liegen? Irgendwie bekomm ich via $output auch nix ausgegeben.

    Der Webserver hat auf dem Linuxding die Gruppe Nobody, der Server hat die Gruppe cod. Die start.sh Datei hat die Chmodrechte 777.

  • #2
    mach mal
    PHP-Code:
    <?php
    $output 
    shell_exec('befehl');
    echo 
    $output;
    ?>
    (oder gleich
    PHP-Code:
    <pre>
    <?php
    system
    ('befehl');
    ?>
    </pre>
    )

    und guck vorher ob das hier auch existiert, /home/games/cod/start.sh

    Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

    bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
    Wie man Fragen richtig stellt

    Kommentar


    • #3
      Also das Verzeichnis ist so richtig.

      Aber auch so kommt keine Ausgabe, ich bekomm also nicht mal ne Fehlermeldung irgendwie. Naja und der Server wird auch nicht gestartet.

      Kommentar


      • #4
        Habe jetzt mal folgendes eingegeben:

        PHP-Code:
        echo shell_exec('cd /home/games/cod/;
        dir;
        ./cod_lnxded +set net_ip X.X.X.X +set net_port 28960 +set dedicated 1 +gametyp sd &'
        ); 
        So, er wechselt ins Verzeichnis, dass bekomme ich auch durch das dir im browser zurück gegeben und sehe ja, dass ich im richtigen Verzeichnis bin. Aber vom Server starten hält er nicht viel.

        Könnte es einfach sein, dass er mit den "Nobody" Rechten wenig lust hat, dass zu starten? Wenn ja, wie sag ich ihm, dass er halt das per User "cod" machen soll? User und Passwort dazu habe ich ja.

        Kommentar


        • #5
          Stichwort 'sudo'.

          Kommentar


          • #6
            Original geschrieben von onemorenerd
            Stichwort 'sudo'.
            fragt sich nur warum das Programm nix sagt ... scheint ja ein ganz tolles Skript zu sein *hust*

            Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

            bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
            Wie man Fragen richtig stellt

            Kommentar


            • #7
              Also, ich habe jetzt mal bissle rumgetestet.

              Wenn ich jetzt in der eingabe z.b. mkdir test; mache und die rechte auf 777 von dem ordner (der ebend andere benutzergruppe hat) stelle, erstellt er mir ja den ordner, auch wenn es nicht seine Gruppe ist. müsste er dann nicht auch die .sh datei ausführen? Oder heißt 777 noch lange nicht, dass er auch solche Dateien starten muss?

              Wenn ich den Server mit screen starten will, bekomm ich die Meldung:

              Must be connected to a terminal.

              Sudo habe ich mal geschaut und auch installiert. Es läuft auch, aber trau mich jetzt nicht so recht an die Konfiguration ran, nich das ich nachher nicht mal mehr per Root oder so rein komme. Hoffe halt, dass es einen anderen Weg gibt.

              Kommentar


              • #8
                Kurz zur Erklärung:

                4 - lesen
                2 - schreiben
                1 - ausführen


                Durch adition dieser Zahlen ergeben sich so sachen wie 7, oder 5, 6, usw


                xxx (zb 777)

                1. x: Besitzer
                2. x: Gruppe
                3. x: Jeder


                777 - heist also: lesen, schreiben und ausführen für jeden
                755 - lesen, schreiben, ausführen für den besitzer, für alle anderen nur lesen und ausführen.
                640 - lesen und schreiben für den besitzer, für die gruppe nur lesen, für alle anderen nix

                Kommentar

                Lädt...
                X