shell_exex();

Armin

New Member
Servus :-)

ich möchte gern einen Prozess via PHP starten, hänge allerdings daran weil es nicht klappt.

PHP:
$idpath = $_SESSION["id"];
passthru("screen -mdS 16 /home/16/script16 &");
noch
PHP:
shell_exec("screen -mdS ".$idpath." /home/".$idpath."/samp_".$idpath." &");

Allerdings gibts da keine Ausgabe, und wenn ich den Befehl direkt in die Konsole tippe kommt sofort das gewünschte Ergebnis.

Im errorlog vom Häuptling steht auch nichts passendes.

Alternativ, dachte ich mir vllt. gibt es eine möglichkeit Variablen von PHP, die aus einer MySQL DB stammen in ein Shell-Script zu übergeben,

Weiß jemand Rat?

Gruß Armin
 
Hast du in deiner php.ini eventuell bei disable_functions sowohl passthru als auch shell_exec deaktiviert?
 
Wären die Funktionen deaktiviert, würde PHP mit einem Error abbrechen oder zumindest einen Warning ausgeben!
 
In der Regel geht das Starten von screen-Prozessen direkt ueber den Webserver nicht da standartmaessig dem Benutzer der Zougriff auf tty's fehlt. Ich empfehle entweder den Betrieb eines Backend-Daemons, Cronjobs oder der PHP-SSH2 Erweiterung zum Ausfuehren des Kommandos.

Warum er nichts anzeigt: ein "echo" vor shell_exec() wuerde die Meckerei des Screen-Tools auch ausgeben :)

(Alternativ kannst du auch mit nohup arbeiten, allerdings waere dann weiterhin der www-data (oder sonstiger) Benutzer der Besitzer statt dass deine Gameserver getrennte User haetten. Spaetestens FTP waere dann eine Frickelei)
 
Hallo Leute...

sorry das ich mich so spät melde!

Die Lösung vom Problem war
PHP:
PHP:
shell_exec(script.sh);
SHELL:
...
PHP:
screen -mdS {Name} Programm &
...

Gruß,
 
Dafuer steht sie auf allen Gameserverhosts -was oft staerkere Machinen sind- sperrangelweit offen ;)
(Siehe: Mattie System Plugin)

Spricht was dagegen proc-open zu benutzen wenn schon die Vorteile von screen genutzt werden sollten?
 
Back
Top