phpbar.de logo

Mailinglisten-Archive

[php] PHP-Skript über system-Aufruf

[php] PHP-Skript über system-Aufruf

Eddi eddi at to-grip.de
Sam Jul 9 17:06:03 CEST 2005


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