Lep pozdrav vsem skupaj!
Kako ste kaj? Jaz popizdevam nad Linuxom ... :)
Naj opišem situacijo. Recimo, da imam PHP skripto "parent.php" in skripto "child.php". Skripta "child.php" se izvaja 10 minut.
V skripti "parent.php" imam nekaj kode, nato SPROŽIM skripto "child.php", ki naj se v miru izvaja, skripta "parent.php" pa TAKOJ nadaljuje z delom in NE čaka na output skripte "child.php".
V praksi to pomeni, da se skripta "parent.php" izvaja pol sekunde in v tem času pokliče skripto "child.php". Skripta "child.php" pa se potem izvaja svojih 10 minut in opravi vse težaško delo.
A je do tukaj še vse jasno? :)
No, trik je v tem, da sem poskusil že miljon enih opcij.
1.) V skripti "parent.php" sem klical skripto "child.php" z ukazom exec("/usr/bin/php /home/nekuser/nekamapa/child.php >/dev/null 2>&1");. To NI bilo uspešno, "parent.php" je čakal na output in se izvajal 10 minut.
2.) Potem sem poskusil z exec("/usr/bin/php /home/nekuser/nekamapa/child.php&");, ki naj bi skripto pognal v backgroundu. Žal je zgodba povsem enaka.
3.) Nato sem poskusil z pclose(popen("/usr/bin/php /home/nekuser/nekamapa/child.php&", "r"));. Srce je za trenutek vztrepetalo! Stvar dela! Well, not really.
V tem primeru stvar res dela, če "parent.php" poženem iz konzole (SSH - PuTTY), in to povsem pravilno! Če pa jo poženem z obiskom te skripte prek URLja z brskalnikom, pa spet NE dela in se "child.php" sploh ne izvede. V tem primeru se sicer "parent.php" res izvede v sekundi, ampak se "child.php" sploh NE pokliče.
Ima mogoče kdo kakšno idejo, kako bi lahko rešil ta problem? Povsod po netu najdem predloge, da bi stvar z ">/dev/null 2>&1" morala delovati. Ampak na mojem serverju žal ne. Wtf.
Uporabljam ServInt VPS za $89 mesečno. Njihov support je brez moči.
Please help meh. !!! 11 stofakingenajsttisoč !
Anže