Mailinglisten-Archive |
Hi,
> ----------
> Von: 510013071846-0001_(at)_t-online.de[SMTP:510013071846-0001_(at)_t-online.de]
>
> ich versuche in einem Skript ein Systembefehl via exec() aufzurufen,
> so dass dieser im Hintergrund läuft, und PHP nicht auf das Beenden des
> Befehls wartet.
>
> Exec(befehl parameter &) verhält sich aber auch nicht anders als
> Exec(befehl parameter) :-(
>
> Da das Skript ein rekursives Programm startet und dessen Ausführung u.U.
> etwas
> länger dauern kann ist das keine befriedigende Lösung.
>
>
Ja, das kenn ich ... hatte das auch mal gelöst, nur leider ist das Script
zuHause
irgendwo vergraben.
Wir hatten das damals so geloest:
das exec ruft ein script mit Parametern auf ...
in etwa so: exec("wrapper $a $b $c");
wrapper ist ein Shell-Script, das dann das eigentliche Programm aufruft.
----- wrapper ------
So in Etwa
#!/bin/bash
Irgendwo muss was mit trap hin, das verhindert, daß das Script beendet
wird (man trap oder man bash ... irgendwo war da was ;)
tuirgendeinprogramm $1 $2 $3 < /dev/null >/dev/null 2>&1
---- ende -----
Das verbiegen von STDIN und STDOUT und STDERR ist auch nicht unwichtig.
Falls es nicht klappt --> Mail und ich gugg mal nach - dauert aber etwas.
Grüße, Mathias
php::bar PHP Wiki - Listenarchive