在debian系统上长时间运行的php进程中,有一个exec
语句被调用数千次(~100000次)。该脚本对图像进行批处理,一次20个。部分原因是,它使用exec
调用imagemagick库的convert
命令行实用程序来扩展图像。
问题是,在运行几个小时并处理成千上万的图像后,程序开始经历一段时间的循环...因为exec不能分叉一个进程,整个过程很快就会到来最后,许多图像仍在处理队列中。
我已经四处查看了exec无法解决警告的可能原因,并且可以解决这些问题:
777 -R
提供给与该流程相关的文件夹。这可能是由于php的子进程限制php -r "echo exec('ulimit -u');"
被完全耗尽,但我不确定。
那么,如何运行命令行实用程序,等待它完成,确保释放实用程序使用的每个资源?