This is a discussion on exec background process within the PHP Language forums, part of the PHP Programming Forums category; I want have PHP call another process (another PHP script at the moment but it may end up being a ...
|
|||||||
| FAQ | Members List | Calendar | Search | Today's Posts | Mark Forums Read |
|
|||
|
I want have PHP call another process (another PHP script at the moment
but it may end up being a binary) in the background and not wait for process to complete, but rather instantly jump the the next line of code. I've tried things like: exec("./script.php &"); // script.php has executable permissions set exec("at -f ./script.php now"); // and #!/usr/bin/php at the top of the code Neither seem to work. They both execute script.php, but both hang around until script.php has completed. Any ideas? |
|
|||
|
Matt <google@mralston.com> wrote:
> I want have PHP call another process (another PHP script at the moment > but it may end up being a binary) in the background and not wait for > process to complete, but rather instantly jump the the next line of > code. > > I've tried things like: > > exec("./script.php &"); // script.php has executable permissions set > exec("at -f ./script.php now"); // and #!/usr/bin/php at the top of > the code > > Neither seem to work. They both execute script.php, but both hang > around until script.php has completed. Hi Matt, You could use proc_open for this: proc_close(proc_open ("./script.php &", array(), $foo)); The empty array for the output specs prevents opening any pipes to the new process, so proc_open doesn't wait for the execution of script.php to finish - the last parameter is just there because it has to be. proc_close() closes the process immediately, so your PHP script doesn't stop. HTH; JOn |