最近有用到php cli下调用执行其它php脚本,所以就用exec等函数了。一用问题就来了,只要在代码里执行了其它php脚本,就会有进程残留,就算执行了exit也不会终止进程。这个问题百度谷歌都没有结果,当然也可能我搜索姿势不对。
test.php
<?php echo exec('php ' . __DIR__ . '/test2.php');
test2.php
<?php echo 'lalala';
如下图,执行完后这个进程一直存在。。。
实在没办法,从http://windows.php.net/download/下载了一个php下来,没有任何配置情况下跑这个脚本竟然没毛病!于是我想到了php.ini里出问题的可能性,终于发现是APCu的问题。
做如下修改解决:
apc.enable_cli=0
修改后执行脚本,跑完了进程就结束了,正常!如下图:
当然你也可以把APCu的扩展整个给处决掉,永无后患!