ID: 39322
Updated by: [EMAIL PROTECTED]
Reported By: c dot affolter at stepping-stone dot ch
Status: Open
-Bug Type: Program Execution
+Bug Type: Documentation problem
Operating System: Linux 2.4
PHP Version: 5.1.6
New Comment:
Reclassified as docu problem.
Previous Comments:
------------------------------------------------------------------------
[2006-10-31 16:22:53] c dot affolter at stepping-stone dot ch
Description:
------------
After sending a signal via proc_terminate() to a process, the process
resource gets closed immediately.
This means that calling proc_get_status() afterwards, will throw a
warning about an invalid process resource.
This behaviour is somewhat cumbersomely, since you're unable to check
if it was your signal which has caused the process to terminate or if
the process has stopped.
Is this a bug or an undocumented behaviour?
BTW:
Sending a signal via the shell or through posix_kill(), will retain the
status for the first proc_get_status() call.
Reproduce code:
---------------
<?php
$descriptors = array(
0 => array('pipe', 'r'),
1 => array('pipe', 'w'),
2 => array('pipe', 'w'));
$pipes = array();
$process = proc_open('/bin/sleep 120', $descriptors, $pipes);
proc_terminate($process);
var_dump(proc_get_status($process));
?>
Expected result:
----------------
array(8) {
["command"]=>
string(14) "/bin/sleep 120"
["pid"]=>
int(23011)
["running"]=>
bool(false)
["signaled"]=>
bool(true)
["stopped"]=>
bool(false)
["exitcode"]=>
int(-1)
["termsig"]=>
int(15)
["stopsig"]=>
int(0)
}
Actual result:
--------------
Warning: proc_get_status(): 7 is not a valid process resource in ...
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=39322&edit=1