您好,欢迎访问一九零五行业门户网

php中popen之后一直等待脚本执行完毕才向下执行,如何解决?

我在php中,使用了pclose(popen())之后,一直等待popen运行的脚本运行完成才继续向下执行。
//test.phppclose(popen('php '.__dir__.'/index.php','r'));$fp = fopen('product.txt', 'cb');if(flock($fp, lock_ex | lock_nb)){ echo ok
;}else{ echo no
;}fclose($fp);

//index.phpsleep(10);set_time_limit(0);$fp = fopen('product.txt', 'cb');flock($fp, lock_ex | lock_nb);for($i = 10 ; $i ;$i--){ fwrite($fp,$i.\n); sleep(6);}fclose($fp);

在test.php中第2行代码一直等到index.php执行完毕才开始运行,请问这是为什么
回复内容: 我在php中,使用了pclose(popen())之后,一直等待popen运行的脚本运行完成才继续向下执行。
//test.phppclose(popen('php '.__dir__.'/index.php','r'));$fp = fopen('product.txt', 'cb');if(flock($fp, lock_ex | lock_nb)){ echo ok
;}else{ echo no
;}fclose($fp);

//index.phpsleep(10);set_time_limit(0);$fp = fopen('product.txt', 'cb');flock($fp, lock_ex | lock_nb);for($i = 10 ; $i ;$i--){ fwrite($fp,$i.\n); sleep(6);}fclose($fp);

在test.php中第2行代码一直等到index.php执行完毕才开始运行,请问这是为什么
pclose(popen('nohup ' . $cmd . ' & 2>&1', 'r'));
pclose(popen('php /path/to/task.php &', 'r')); 其中&表示放入后台执行脚本task.php.
另外注意,if(flock($fp,lock_ex)) 会阻塞到获取排它锁.
其它类似信息

推荐信息