system() in Hintergrund ausführen
Claudia
- php
Hi Forum,
ich verwende PHP 4.4.2 und möchte aus meinem PHP-Skript ein Perl-Skript aufrufen. Dieses rechnet allerdings sehr lange, und ich möchte nicht, dass meine Seite so lange wartet. Deshalb wollte ich das Perl-Skript im Hintergrund ausführen. Ist das mit system() oder exec() überhaupt in PHP möglich?
Ich hab schon mit sowas experimentiert:
system("nohup $command 2&1>/dev/null &");
aber auch das funktionierte nicht.
Danke, Claudia!
Hi Claudia,
system("nohup $command 2&1>/dev/null &");
Ich habe das auch vor einiger Zeit mal probiert - allerdings war es bei mir ein PHP-Script was aus einem anderen PHP-Script gestartet im Hintergrund lauefn sollte.
Sven brachte mich dann auf die Idee, dass ein
fclose(STDIN);
fclose(STDOUT);
fclose(STDERR);
im PHP-Script welches im Hintergrund läuft helfen könnte. Zusammen mit einem einfachen
$ausgabe = exec("./script.php")
funktioniert das einwandfrei (wobei script.php eine Shebang haben und ausführbar sein muss).
MfG, Dennis.
Hi,
Danke für deine Lösung, aber auch diese hat bei mir leider nicht funktioniert. Auf php.net fand ich dann folgendes Schnipsel, welches tut:
<?php
...script before...
exec("$ProgExec > /dev/null &");
...script after
?>