phpbar.de logo

Mailinglisten-Archive

[php] exec, system und "&"

[php] exec, system und "&"

Matthias Pigulla mp_(at)_webfactory.de
Mon, 04 Oct 1999 21:40:07 +0200


"Joerg H. Baach" wrote:
>   exec("skript.sh &") => Tuts aber leider nicht - PHP wartet bis zum
>   Ende des Shellskriptes.

Ich müßte mir das genauer angucken, daher nur ein "Schnellschuß" ;-)

in php-3.0.12/functions/exec.c:
[...] if (php3_ini.safe_mode) {
[...]
                c = strchr(cmd, ' ');
                if (c) *c = '\0';        
[...]

Sieht so aus, als wird (intern) Dein Befehlsstring am ersten Leerzeichen
abgeschnitten, wenn der safe_mode aktiviert ist.

--> 1) Schau mal nach, ob das der Fall ist?

Was mich noch stutzig machte, ist die Tatsache, daß in der Doku ja gar
nicht steht, daß das Kommando in einer shell interpretiert wird - die
C-Funktion exec() ersetzt einen Prozeß, und führt ihn nicht in einer
Subshell aus.

Im Quellcode (exec.c) steht aber
[...] fp = popen(cmd, "rb");
Der Befehl läuft also durch eine Shell.

---> 2) Ist die Doku hier ungenau? Sollte man das ergänzen?

Als letzten Versuch würde ich sonst einfach mal probieren, ein
Wrapper-Skript zu schreiben: Du rufst dieses Skript 08/15 mit exec()
auf, und erst in diesem Skript (bash-Skript o.ä.) wird das eigentliche
Skript mit dem & gefork't.

Matthias
-- 

 w e b f a c t o r y
   Matthias Pigulla <mp_(at)_webfactory.de> - Geschaeftsfuehrer
   Lessingstr. 60 - 53113 Bonn - http://www.webfactory.de/
   Fon: 0228-9114455 - Fax: 0228-9114499 - ICQ: 49185492


php::bar PHP Wiki   -   Listenarchive