我一直在使用popen
在PHP中模拟多任务处理。我的想法是,我将需要同时运行多次的代码部分放在不同的文件中,每次需要运行时用popen
运行该文件一次,使用命令行参数输入输入数据,然后遍历文件句柄,直到他们都返回了他们的数据。
作为调试过程的一部分,我运行此应用程序大约一百次,每次调用popen
大约50次。通常,资源最后是pclose
,但偶尔会出现错误或exit
,资源在脚本结束时保持打开状态。
由于某种原因,大约一小时前popen
在尝试打开该文件时突然停止工作。我还注意到,如果我将句子中的popen
减少到1并echo
,而不是在Resource id #2
开始编号(我也打开了数据库连接),资源就开始了在Resource id #10
。对我来说,这可能说某些地方可能存在一些泄露的描述符。
如果我不再有引用它们的变量,我如何关闭这些描述符?