目前我正在使用PHP 7.0,在我最近的项目中,我必须使用proc_open来完成后台进程。这里的异常是,proc_open在我得到管道返回时起作用,否则它不会。
$cwd = __DIR__;
$descriptorspec = array(
0 => array("pipe", "r"),
1 => array("pipe", "w"),
2 => array("file", CACHE_LOG_PATH."proc_error.txt","a")
);
$process = proc_open('./curl.php \''.$data.'\'', $descriptorspec, $pipes, $cwd);
/* Weird part is here */
stream_get_contents($pipes[1]);
fclose($pipes[1]);
curl.php是一个简单的bash脚本,它接受url并将其下载到相关目录。我无法理解为什么会这样。