Re: proc_open, proc_get_status, proc_close
Arne Vajhøj <[email protected]> Fri, 6 Jan 2023 09:07:46 -0500
| Newsgroups | comp.lang.php |
|---|---|
| Organization | Aioe.org NNTP Server |
| Message-ID | <[email protected]> |
On 1/6/2023 5:29 AM, Badarbo wrote:
> with the code below, $rv is 0 :-)
>
> --- begin code ---
> $pdesc=[0=>['pipe','r'],1=>['file','stdout.log','w'],2=>['file','stderr.log','w']];
> $proc=proc_open('sleep 3',$pdesc,$pipes);
> fclose($pipes[0]);
> $rv=proc_close($proc);
> echo('rv: '.$rv.PHP_EOL);
> exit(0);
> --- end code ---
>
> With the code below, $rv is -1 :-(
>
> --- begin code ---
> $pdesc=[0=>['pipe','r'],1=>['file','stdout.log','w'],2=>['file',stderr.log','w']];
> $proc=proc_open('sleep 3',$pdesc,$pipes);
> $done=false;
> while ($done===false) {
> $pstat=proc_get_status($proc);
> if (!$pstat['running']) $done=true;
> usleep(500000);
> }
> fclose($pipes[0]);
> $rv=proc_close($proc);
> echo('rv: '.$rv.PHP_EOL);
> exit(0);
> --- end code ---
>
> Why oh why?
When I read:
last comment in https://www.php.net/manual/en/function.proc-close.php
second comment in https://www.php.net/manual/en/function.proc-get-status.php
then one could get the idea that proc_get_status take the status
code for $pstat['exitcode'] and proc_close after that return -1.
Arne