exec() und killall
hörbiger
- php
0 hörbiger0 Mathias Brodala0 hörbiger
0 hörbiger0 Hamstar
Hi,
ich habe mir eine kleine Testseite gebaut. Mit einem Eingabefeld schicke ich ein eingegebenes Kommando an exec().
ps, ls und co. funktioniert. Nur kein killall. Warum? gebe ich gleiches in die Shell ein, funktionierst. Was mache ich falsch oder was muss ich dem Server beibringen?
Die php-datei hat root als owner.
Gruß
Nachtrag:
Prozesseigentümer und der Eigentümer der PHP-Datei sind gleich.
Hallo hörbiger.
ich habe mir eine kleine Testseite gebaut. Mit einem Eingabefeld schicke ich ein eingegebenes Kommando an exec().
ps, ls und co. funktioniert. Nur kein killall. Warum? gebe ich gleiches in die Shell ein, funktionierst. Was mache ich falsch oder was muss ich dem Server beibringen?
Was ergibt folgendes?
exec('killall foo 2>1');
(„foo“ sollte ein harmlos terminierbares Programm sein.)
Hiermit leitest du Fehlerausgaben auf die Standardausgabe um und machst sie dadurch erst einmal in PHP sichtbar.
Einen schönen Freitag noch.
Gruß, Mathias
Was ergibt folgendes?
exec('killall foo 2>1');
(„foo“ sollte ein harmlos terminierbares Programm sein.)
nichts.
ich will ein Signal an einen Prozess schicken.
$command="killall -WINCH sc_trans";
$output=exec($command);
echo $output;
Der Prozess ist der Shoutcast Transcoder. Diesen kann ich wunderbar in der Shell steuern - würde das gerne so machen.
Ich habe volle Rootrechte auf dem Server.
wie gesagt, ein ls oder ps -uusername funktioniert. bzw. bekomme ich dann etwas aus der ausgabe zurück.
das programm, das dieses signal bekommt, gibt aber nichts zurück. auch nicht in der shell. doch beobache ich seine shell-ausgabe in einem shell-fenster. nada.
achso, erstellt eine php-datei eine andere Datei, ist deren Eigentümer "apache" - und nicht der eigentümer der php-datei, die diese datei erstellt hat.
kann es demnach sein, dass "apache" diesen Befehl ausführen will? dann frage ich mich, wie bekomme ich es hin, dass nicht apache den Befehl ausführt, sondern der Eigentümer der PHP-Datei - oder - wie ermögliche ich es "apache", diesen Befehl auszuführen?
h.
kann es demnach sein, dass "apache" diesen Befehl ausführen will?
So würde ich es sehen, es ist eine Rechteproblematik. Warum nicht den account, der den Webserver bzw. noch besser die bestimmte Website fährt nicht entsprechend berechtigen?
Du kannst doch hoffentlich Deinen Webserver konfigurieren, oder?