PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : exec befehl sodass script gleich weitergeht?



mahlzeit
06-09-2006, 21:56
hallo boardgemeinde.

ich versuche verzweifelt mit exec(); einen wget auszulösen, aber so dass das php script gleich weiterläuft und der wget prozess einfach selbst weiterläuft und dann halt fertig wird ohne dass der browser wartet

ich kriegs einfach nicht hin, wär wunderbar wenn ihr mich auf den rechten weg bringt.

vielen dank schonmal

Romanday
06-09-2006, 22:18
hallo boardgemeinde.

ich versuche verzweifelt mit exec(); einen wget auszulösen, aber so dass das php script gleich weiterläuft und der wget prozess einfach selbst weiterläuft und dann halt fertig wird ohne dass der browser wartet

ich kriegs einfach nicht hin, wär wunderbar wenn ihr mich auf den rechten weg bringt.

vielen dank schonmal

Mit PHP hat das nix zu tun.
Du mußt wget mit der Option b starten.

mahlzeit
06-09-2006, 22:21
!vielen dank.

und wie ist das mit anderen programmen?

ich hab versucht mit nohup aber bringt auch nix

kannst mir das auch sagen bitte?

mahlzeit
06-09-2006, 22:22
mit dem kaufmännischen UND & zeichen hinten am shell befehl geht auch nichts

Romanday
06-09-2006, 23:37
!vielen dank.

und wie ist das mit anderen programmen?

ich hab versucht mit nohup aber bringt auch nix

kannst mir das auch sagen bitte?

Das kommt auf jeweilige das Programm an.

Beatkiller
07-09-2006, 20:41
Ich hatte auch mal so ein Problem, und ein Script gefunden, mit dem man Shell Commands im Hintergrund ausführen konnte.

Vielleicht hilft dir auch diese Seite weiter:

http://www.welldonesoft.com/technology/articles/php/forking/

Außerdem könnte dir noch PCNTL helfen: http://www.php-mag.net/itr/online_artikel/psecom,id,484,nodeid,114.html

Ravetracer
18-09-2006, 09:56
Unter Linux sollte PCNTL schon funktionieren, ja.

Für PHP für Windows ist diese Funktion allerdings nicht verfügbar.
Es gibt aber trotzdem eine Möglichkeit, das zu bewerkstelligen.
Ich hatte das gleiche Problem und musste letztendlich dann über COM-Objekte und den
Windows Scripting Host gehen (alles mühsam aus den Tiefen von msdn zusammengesucht ;) ):

$batchfile = new COM("WScript.Shell");

$batchfile->Run($this->_workDir."\\temporary\\install.bat ".$this->_workDir."\\temporary",0,TRUE);

Diese Methode hat zumindest für mich ganz gut funktioniert (und funktioniert immer noch)

cplinux
18-09-2006, 20:27
Das läßt sich normalerweise mit exec() bzw. system() realisieren.
Je nach Berechtigung solle man allerdings einen Eintrag in /etc/sudoers vornehmen. :D

undefined
19-09-2006, 13:30
hallo boardgemeinde.

ich versuche verzweifelt mit exec(); einen wget auszulösen, aber so dass das php script gleich weiterläuft und der wget prozess einfach selbst weiterläuft und dann halt fertig wird ohne dass der browser wartet

ich kriegs einfach nicht hin, wär wunderbar wenn ihr mich auf den rechten weg bringt.

vielen dank schonmal
Verwende fpassthru() exec() erwartet einen Rückgabe Wert.
beispiel:


ob_start();
fpassthru("wget ..... &" );
$buffer = ob_get_contents();
ob_end_clean();

http://www.php.net/manual/de/function.fpassthru.php