ID:               40070
 Updated by:       [EMAIL PROTECTED]
 Reported By:      kyle at videoegg dot com
-Status:           Open
+Status:           Bogus
 Bug Type:         Program Execution
 Operating System: Windows XP SP2
 PHP Version:      5.2.1RC2
 New Comment:

it returns the PID of cmd.exe, as in the linux implementation. However
if you set the last parameter as array('bypass_shell' => true), you'll
get the PID of the program, because you are bypassing the shell.


Previous Comments:
------------------------------------------------------------------------

[2007-01-09 01:46:09] kyle at videoegg dot com

Description:
------------
This is identical to Bug #38542

There still seems to be an issue with this. I have upgraded my PHP
installation to "PHP 5.2.1RC3-dev (cli) (built: Jan  9 2007 00:24:29)"
on Windows and I am getting the wrong PID returned. 

proc_get_status returns 2976 for the PID while the script that is being
executed sees its PID as 3768 from getmypid(). 

Additionally, "tasklist" from the command line returns:

php.exe        3768 Console    0  9,084 K

Reproduce code:
---------------
pid.php
<?php
$descriptorspec = array(
        0 => array("pipe", "r"),  // stdin is a pipe that the child will read
from
        1 => array("pipe", "w"),  // stdout is a pipe that the child will
write to
        2 => array("pipe", "w")   // stderr is a pipe that the child will
write to
);

$resource = proc_open('php -f pid_output.php', $descriptorspec,
$pipes);

$stats = proc_get_status($resource);

$handle = fopen("pid.dat", "a");
fwrite($handle, "Parent: " . $stats['pid'] . "\n");
fclose($handle);
?>

pid_output.php
<?php
$handle = fopen("pid.dat", "a");
fwrite($handle, "Child: " . getmypid() . "\n");
fclose($handle);
?>

Expected result:
----------------
Parent: 3480
Child: 3480


Actual result:
--------------
Parent: 3224
Child: 3480



------------------------------------------------------------------------


-- 
Edit this bug report at http://bugs.php.net/?id=40070&edit=1

Reply via email to