Mailinglisten-Archive |
Stephan Beck schrieb: > eddi wrote: > > >>Mir ist gerade noch aufgefallen, daß Du den Prozess auch noch parallel >>starten willst. Mit system() alleine wird Dir dies nicht gelingen. Dazu >>müßtest Du im gestrateten Sript /export/internet/shell_export.php (am >>System) mit fork() arbeiten. >>http://de3.php.net/manual/de/function.pcntl-fork.php > > Ich dachte mit system() ohne zweiten Parameter läuft der Aufruf eh parallel?! Streng betrachtet ist dies auch in der Tat so, nur wartet der aufrufende Prozess die gesamte Abarbeitung des aufgerufenen Prozesses ab, bis weiterer Steuerfluß des aufrufenden Prozesses abgearbeitet werden kann. Ein Beispiel: Du hast eine große Datenbankabfrage/update durchzuführen, ohne das die Ausgabe beim User vom Erfolg oder Mißerfolg der Transaktion beeinflußt wird, so ist es sinnvoller diese Transanktion parallel in einem eigenen Prozess zu veranstalten, als den User warten zu lassen. > php wird korrekt angesprochen, da der Pfad entsprechend in den > Systempfad eingetragen wurde. Das widerspricht doch jeder Logik, oder hast Du nun die gewünschte Ausgabe des externen Programmes erhalten? > Die Geschichte ist, dass die Ausführung des Befehls über Konsole das > gewünschte Ergebnis liefert, daher kann es nicht an falschen > Pfadangaben liegen, aber ich brauche den Aufruf eben aus einer > PHP-Seite. Das ist soweit auch schon beim ersten mal durchgedrungen, hat aber nichts mit der Shell zutun, an der der Webserver aufgerufen wurde und wo man eben an der Shell im gleichen Verzeichnis erfolg hatte. Vielmehr serviert der Server allen aufgerufennen Variablen eigene, konfigurierbare Variablen aus, die also nicht zwangsläufig die gleichen der Shell sein müssen.
php::bar PHP Wiki - Listenarchive